js基础内容

1. 编辑器

编译环境 浏览器

编辑软件 vscode sublime DW H5Build Atom

【注】尽可能多的去使用编辑器去编辑代码。

Html+css

JS 逻辑

比作建设一栋摩天大厦

Html 结构

css 装修

javaScript 物业 (和用户交互)

如何和用户进行交互。

2.认识JavaScript

基于对象和事件驱动的客户端脚本语言。

++ JavaScript是一种专为与网页交互而设计的客户端脚本语言。++

网页交互 和网站进行互动

客户端

客户端和服务端(相对概念)资源提供

++ 服务端 资源提供方

客户端 获取资源 ++

3.js的基础

<script type = "text/javascript">

/* javascript组成

graph TB
javascript-->ECMAScript
javascript-->BOM
javascript-->DOM

++ 1、ECMAScript

2、BOM Browse Object Model 浏览器对象模型

3、DOM Document Object Model 文档对象模型 ++

*/

/*【注】javascript代码全部写在script标签里。

src: 引入外部文件【引入js文件】 css href */

/*第一个js程序

== alert() 弹出警告框

document.write() 在页面上输出文本 ==

*/

// alert("Hello World!");

//document.write("Hello World!");

            alert(1);
</script>
<script>
alert(2);
</script>
<script src = "demo.js">
/*
如果用户引入外部文件
这里就不能再写代码了
*/
alert("执行不到");
// 单行注释 快捷键(ctrl + /)
/*
多行注释 快捷键(ctrl + shift + /)
*/
</script>

4.js注意

            /*document.write("<h1>标题</h1>"); */
/* document.write 会自动解析文本内标签内容
*/
/*
转义字符 &lt < &gt >
*/
document.write("&lt/script&gt");
/*
【注】要求每一条js语句后都加分号。
*/

5.变量和常量

++ 常量/直接量/字面量 ++

100 3.14 "hello" true

数据类型:

== ** 基本数据类型 : ==

++ ** Number/数字 ** ++ 10 3.14

++
String/字符串++ 所有带单引号或双引号

++
Boolean/布尔值**++ true false

复合数据类型:对象

++特殊数据类型++:NaN(not a number)  undefined(未声明)  null(空)

1、变量的声明/定义

var 关键字(特殊功能的单词) 声明变量

var num 在内存中开辟/申请一块空间,名字叫做num

num = 20;

2、初始化

声明变量的时候,直接赋值,叫做初始化。

                /*var num = 20;
alert(num);*/
/*var num;
alert(num); //undefined*/

3、为了避免上述操作,一般情况下,会把变量赋值成null

                /*var num = null;
num = 30;*/
/*
typeof 输出当前变量或者常量的数据类型
*/ // alert(typeof num); //number /*var str = "hello";
alert(typeof str); //string*/ var isYes = true;
alert(typeof isYes); //boolean

1、=号前后加空格

2、每一条语句后加分号。

==组成电脑的部件

外设

CPU 内存 硬盘 主板 显卡(GPU)

运行程序 程序被CPU运行

写好程序存储硬盘

硬盘 -> 内存(程序是在内存中被CPU运行)

6.变量命名规则

/*

++【注】用户自定义的名称,都叫做标识符。++

1、只能由数字、字母、下划线、$组成

2、不能以数字开头

3、区分大小写age Age 两个变量

4、见名思意

5、多个单词驼峰式命名 className 烤串式 class_name 6、禁止用拼音,英文单词用全拼

7、不能是关键字和保留字

++【注】JS变量,弱类型。变量的数据类型可以根据赋值改变。++

【注】禁止这么做,会歧义。

*/

            // var 1nu$m = 10;
/*var num = 10;
var num1 = 10, num2 = 20, num3 = 30;
var str = "hello";
var name = "qf"
var className = "青岛1802";*/
/*var num = 10;
num = "hello"
alert(typeof num);*/

7.运算符

/*

++算数运算符

逻辑运算符

关系运算符

赋值运算符

自增、自减运算符++

...

*/

/*

算符运算符

+

-

*

/

% 取余运算符

0.01

*/

++++            /*++++var num = 12 % 10;
alert(num);*/ /*var num = -10 / 0; //Infinity无穷大 -Infinity无穷小
alert(num)*/

/*

其他数据类型的算数运算

++表达式:变量/常量和任何运算符组成的式子叫做表达式。

1、功能

2、值++

*/

// alert(100 + 200);

8.自动数据类型转换

/*

自动数据类型转换:

【注】不同数据类型的数据,不能直接用于计算,转化成同一类型,才能进行计算。

*/

/*

+

1、当运算符是加法,并且其中一个操作数是字符串的情况下,另外一个操作数也会被转成字符串进行拼接。

*/

            // var str = "hello" + "world";
// var str = "hello" + 100
// var str = "hello" + true;
/*var str = "hello" + undefined;
alert(str);*/

/*

2、当运算符不是加号,如果操作数是字符串,操作数会直接转成数字进行运算。

如果操作数不是纯数字字符串的话,转成数字会直接转成NaN,NaN和任何数据进行运算,都是NaN(not a number)。

*/

            /*var str = "200" - "100";
alert(typeof str); //number*/ /*var str = "200" - "10a";
alert(str); //NaN*/

/*

3、布尔值和数字进行算数运算。

<1>将布尔值转成数字,再进行运算

<2>true => 1 false => 0

*/

            // var num = 1 + true;
// var num = 1 + false;
// var num = 10 - true;
/*var num = "10" - true;
alert(num);*/

9.强制数据类型转换

/*

++Boolean(数据);

【注】将别的数据类型强制转换成布尔值。++

1、非零即真

2、非空即真

3、undefined NaN null => false

*/

            // alert(Boolean(-10)); //true
// alert(Boolean(0)); //false // alert(Boolean("10")); //true
// alert(Boolean("")); //false // alert(Boolean(undefined)); //false
// alert(Boolean(NaN)); //false
// alert(Boolean(null)); false

10.数字强制数据类型转换

	<script>

/*

Number() 将别的数据类型转成数字

parseInt() 取整

parseFloat() 取浮点数(带小数点的数)

*/

            // alert(Number(true));
// alert(Number(false)); // alert(Number("200a")); //NaN // alert(parseInt("3.14")); // alert(parseInt("20a")); //20 // alert(typeof parseFloat("3.14")); //number

/*

++【注】不要用小数进行运算,计算机不会计算小数运算。++

*/

		// alert(3.14 + 5.33);
alert(0.8 - 0.1);
</script>

11.练习

<script>
/*
a.入职薪水10K,每年涨幅入职薪水的5%,50年后工资多少?
*/ /*var money = 10000;
var salary = money * 0.05 * 50 + money;
alert(salary);*/ /*
b.为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
*/
/*var hour = 89;
var date = parseInt(hour / 24);
var newHour = hour % 24; alert("共" + date + "天零" + newHour + "小时");*/ /*
c.小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。
它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32)
*/ /*var Fahrenheit = 90;
var centigrade = 5 / 9 * (Fahrenheit - 32);
alert(centigrade)*/ /*
d.给定一个三位数,分别把这个数字的百位、十位、个位算出来并显示。
*/
var num = 123;
var unit = num % 10;
var decade = parseInt(num / 10) % 10;
var hundreds = parseInt(num / 100); alert("百位:" + hundreds + ",十位:" + decade + ",个位:" + unit);

/*

1、代码缩进(JS/html) 一个tab键 == 四个空格

2、=号两边的空格 + 号两边的空格,所有运算符前后都要加空格。

3、语句最后的 ; 号

*/

	</script>

12.运算符格式

<script>
/*
格式:*= += -= /= %=
*/
var num = 10;
// num = num + 20;
// num += 20; // num = num * 10;
num *= 10;
alert(num);
</script>

13.一元运算符

<script>
/*
【注】操作数只有一个,叫做一元运算符
操作数++
1、功能 对原来的数进行+1操作。
2、值 【注】表达式 num num++ ++num

功能:一致,都是对原有的num进行+1操作。自增

值:

num++

++后置,先取值,后运算

++num

++前置,先运算,后取值

b=a++——>b=a,a=a+1

c=++a——>a=a+1,c=a

操作数--

*/
// var num = 2;
// alert(num++); //2
// alert(++num); //3
// alert(num); //3 var num = 2;
// alert(num--);
alert(--num);
alert(num);
</script>

14.关系运算符

    <script>
/*
> < >= <= == != === !== 格式:
表达式1 关系运算符 表达式2
值: true false
*/
// alert(10 > 20);

/*

【注】别的数据类型之前的关系运算

和其他运算符一样,当关系运算符操作数非数值时要遵循一下规则:

1.两个操作数都是数值,则数值比较;

2.两个操作数都是字符串,则比较两个字符串对应的字符编码值;

逐位进行比较,只要比较出大小,直接得出结果。

3.两个操作数有一个是数字,则将另一个转换为数字,再进行数值比较;

4.NaN和任何数据,进行关系运算都是false。

*/

            // alert("a" > "b"); //ASCII码值 字符和二进制的十进制表示的编码一张对应表

			// alert("abcd" < "ad"); //true

			// alert(10 < "9a");

			// alert(2 > true);
// alert(true == 1);
// alert(false == 0);

/*

++在相等和不等的比较上,如果操作数是非数值,则遵循一下规则:

1.一个操作数是布尔值,则比较之前将其转换为数值,false 转成 0,true 转成 1;

2.一个操作数是字符串,则比较之前将其转成为数值再比较

3.一个操作数是 NaN,则==返回 false,!=返回 true;并且 NaN 和自身不等;

4.在全等和全不等的判断上,比如值和类型都相等,才返回 true,否则返回 false++

*/

		// alert(NaN == NaN); //false

		alert("10" === 10);

	</script>

15.逻辑运算符

<script>

/*

逻辑运算符

与 && (and符号)

格式: 表达式1 && 表达式2

结果:当两个表达式都为真的时候,与运算为真。

短路操作:

当第一个表达式为假的时候,整个表达式为假,表达式2就不去执行。

或 ||

格式:表达式1 || 表达式2

结果:当两个表达式都为假的时候,或运算为假。

短路操作:

当第一个表达式为真的时候,整个表达式为真,表达式2就不去执行。

非 !

格式:!表达式

结果:表达式的值取反。

*/

            // alert(a);

			// alert(10 < 5 && alert(a));

			// alert(10 > 5 || alert(a)); //true

/*

非运算

它的流程是:先将这个值转换成布尔值,然后取反,规则如下:

1.操作数是一个空字符串,返回 true;

2.操作数是一个非空字符串,返回 false;

3.操作数是数值 0,返回 true;

4.操作数是任意非 0 数值(包括 Infinity),false;

5.操作数是 NaN,返回 true;

6.操作数是 undefined,返回 true;

*/

            // alert(!"");  //true
// alert(!"ss"); //false
// alert(!0); //true
// alert(!Infinity); //false
// alert(!NaN); //true
// alert(!undefined); //true

/*

位运算

32位操作系统

32位地址总线

32位可最大寻址基数。 2^32

例如:全国

用十进制两位数进行发放电话号码 00~99

用户二进制两位数进行发放电话号码 00 01 10

1132位系统下可识别的最大内存4GB。

64位操作系统 2^32 * 4GB

计算内存:CPU运行程序的场所。

4GB 8GB

相当于一个一个开关组成的一栋摩天大厦,每一个开关一个房间,每一个房间住一个1或者0.

*/

/*

字符串运算符

+ 字符串拼接符

*/

        var num1 = 10, num2 = 20, num3 = 30;

	</script>

/*

十进制

二进制

八进制

十六进制

*/

/*

十进制转二进制

52   模二取余

110100

二进制转十进制

1 * 2^2 + 1 * 2^4 + 1 * 2^5 =

4 + 16 + 32 = 52

八进制

二进制 => 八进制

【注】自右往左,每三位一组,不足三位用0补齐,将每三位转成十进制数。

110 100

64

4 * 8^0 + 6 * 8^1 = 52;

十六进制 0~9 a b c d e f

【注】自右往左,每四位一组,不足四位用0补齐,将每四位转成十进制数。

0011 0100

34

4 * 16^0 + 3 * 16^1 = 52;

*/

运算符优先级

1、js基础内容的更多相关文章

  1. JS基础内容小结(基础)(一)

    字符串的各类方法 str.charAt(1); 从第0个开始计算获取第一个子符串,如str=‘你好吗’获取到‘好’ str.charCodeAt(1); 获取对应字符串的编码数字:从第0个开始计算 S ...

  2. JS基础内容小结(event 鼠标键盘事件)(三)

    var ev=ev||event 兼容性处理 得到焦点为 onfocus 失去焦点 onblur return false能阻止部分函数的执行 obj.select 选择指定元素里的文本内容 ———— ...

  3. JS基础内容小结(DOM&&BOM)(二)

    元素.childNodes:只读 属性 子节点列表集合 元素.nodeType:只读 属性 当前元素下的节点类型 元素.attributes : 只读 属性 属性列表集合 元素.children: 只 ...

  4. js 基础

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  5. js基础练习二之简易日历

    今天学到了js基础教程3,昨天的课后练习还没来的及做,这个是类似简易日历的小案例,视频还没听完,今晚继续...... 先看效果图: 其实做过前面的Tab选项卡,这个就很好理解了,通过鼠标放在不同月份月 ...

  6. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  7. JS基础(超级简单)

    1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)       ...

  8. js基础到精通全面教程--JS教程

    适合阅读范围:对JavaScript一无所知-离精通只差一步之遥的人 基础知识:HTML JavaScript就这么回事1:基础知识 1 创建脚本块 1: <script language=”J ...

  9. JS基础知识总结

      js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划() ...

随机推荐

  1. .Net转Java.02.数据类型

    .NET中常见的数据类型分类分别是值类型和引用类型 值类型包括(基元类型.struct.枚举) 引用类型包括(类.类.数组.接口.指针) Java分为,基本类型和类   C#   Java   值类型 ...

  2. 用distinct or array_unique

    在 Mysql 获取数据时,如果想获取某一列去重数据,如果获取呢 举个例子: advert_pro_ad 表 CREATE TABLE `advert_pro_ad` ( `advert_id` ) ...

  3. C# Task ContinueWith的实现

    看了上一篇C# Task 是什么?返回值如何实现? Wait如何实现 我们提到FinishContinuations方法中会调用TaskContinuation实例,那么我们的ContinueWith ...

  4. Java RandomAccessFile与MappedByteBuffer

    Java RandomAccessFile与MappedByteBuffer https://www.cnblogs.com/guazi/p/6838915.html

  5. [Linux] - 利用ping给端口加密,限制访问

    Linux中,想对特定的端口加密访问,可以使用iptables的ping方式. 作用 访问被限制的端口,必需先ping发送对应的字节包(字节包大小可自行设置,此为密钥)才能访问成功! 下边是对SSH的 ...

  6. [Python设计模式] 第12章 基金理财更省事——外观模式

    github地址:https://github.com/cheesezh/python_design_patterns 题目1 用程序模拟股民直接炒股的代码,比如股民投资了股票1,股票2,股票3,国债 ...

  7. 【C++】C++中的流

    目录结构: contents structure [-] 1.IO类 IO对象无拷贝状态 条件状态 文件流 文件模式 string流 1.IO类 除了istream和ostream之外,标准库还定义了 ...

  8. linux驱动(续)

    网络通信 --> IO多路复用之select.poll.epoll详解 IO多路复用之select.poll.epoll详解      目前支持I/O多路复用的系统调用有 select,psel ...

  9. 【将门创投】AI 往期技术分享

    计算机视觉 1. 嘉宾:商汤科技CEO 徐立 文章回顾:计算机视觉的完整链条,从成像到早期视觉再到识别理解 2. 嘉宾:格灵深瞳CTO 赵勇 文章回顾:计算机视觉在安防.交通.机器人.无人车等领域的应 ...

  10. centos查看端口被哪个应用端口占用命令

    在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的      net ...