把外部javascript文件放在浏览器的后面,可以提高浏览器的加载速度
defer="defer",等到浏览器加载完毕后才执行脚本,只对外部脚本链接有效
使用var定义的变量是局部变量,省略var就是全局变量,不推荐在局部变量里声明全局变量,很难维护
。。。。。。
javascript中有5种简单的数据类型,分别:
“undefined”未定义,
“null”空的,被定义为空的对象引用,所以它返还的数据类型是对象。
“Boolean”布尔值,
“number”数字,
“string”字符串,
还有一种复杂的类型是“object”对象,javascript数据类型具有动态性,用typeof可以返还上面6种的数据类型
- null和undefined是值相等,但是数据类型不相等
变量未赋值之前输出的数据类型是undefined
null用于没有真正保存的对象
2 boolean布尔值,这个类型只有两个字面量true和false,要将一个值转换成布尔值,可以用boolean()函数来转换,
其他的数据类型也可以转换,
- number数字类型,小数点保存空间是整数的两倍,推荐使用整数,对于极小或极大的数可以用科学计数法“e”,来表示。
在javascript中最小的数值保存在Number.MIN_VALUE中,在浏览器中值是5e-324,
最大的数值保存在Number.MAX_VALUE中,在浏览器中值是1.7976931348623157e+308
超出javascript范围的数值会自动转成Infinity值,
想知道数值是不是在它们之间用isFinite()函数,如果在就会返回true,反之就会返回false,
NaN是一个特殊的数值,NaN与任何的额数值都不相等,包括它本身,
isNaN()函数可以帮我们判断是不是数值,可不可以转换为数值,不能的函数会返回true,反之返回false,
有三个函数可以将非数值转换成数值,分别是:“Number()”,“parseInt()”,“parseFloat()”,
- string字符串,字符串有双引号或单引号表示,字符串有转义序列
length属性可以访问字符串的长度
字符串的特点是一成不变的,一旦创建就不可以改变它的值
要将值转换成字符串有两个方法,toString()函数,几乎每一个值都有这个方法,
但是null和undefined没有,是null就返回nul,是undefined就返回undefined
用+号将值和字符串绑在一起,会自动转换为字符串
- object对象,是一组数据和功能的集合,对象可使用new操作符来创建,可以对其添加属性和方法,有圆括号
在javascript中object是所有对象的基础,都具备属性和方法,
。。。。。。
操作符,用于操作数据值的操作符,包括算术操作符和位操作符,关系操作符和相等操作符,它们能够适应多种值,
相应的操作符都会调用对象的valueof()或者toString()方法,
一,算术操作符
1.一元操作符,只能操作一个值的操作符,
递增和递减操作符,++和--
有前置型和后置型,前置放在变量的前面,后置放在变量的后面
前置型的一元操作符是在值基础上+1和值的基础上-1,有优先级,所以整个语法是被看做从左到右求值
后置型的递增没有改变,而递减改变了,它是在原始的上减一,没有优先级
2.一元加和减操作符,+,-,和数学上面的一样不会对数值造成影响,相当于正和负
非数值会调用方法转换,布尔值true会转换位1,布尔值false会转换成0,
加和减操作符对非数值的转换规则都是相同的。
二,位操作符,对进制数值的转换
- 按位非(NOT)用~表示,执行它就是返回数值的反码,相反的,
- 按位与(AND)用&表示,它有两个操作符数,将操作符数转换为二进制,对应的位是1才返回1,0就返回0,返回十进制,
- 按位或(OR)用|表示,它有两个操作符数,将操作符数转换为二进制,对应的位是1就返回1,有一个是1也返回1,两个都是0就返回0,返回十进制,
- 按位异常或(XOR)用^表示,它有两个操作符,将操作符数转换为二进制,对应的位有一个是1才返回1,两个事1或者0,就返回0,返回十进制,
- 左移(用两个小于号<<表示)相应的位数,有符号的右移(用两个大于号>>表示)相应位数,无符号的右移(用三个大于号>>>表示),相应的位数
三,布尔操作符,一共有三个,“非(NOT)”,“与(AND)”,“或(OR)”
- 逻辑非(NOT)用!表示,可用于任何值,不管任何数据类型,它会返回一个布尔值,然后对布尔值求反,可以用两个逻辑非操作符,规则是一样的,
- 逻辑与(AND)用&&表示,有两个操作数,可用于任何类型的操作数,不能使用未定义的值,它是短路操作符,第一个能够决定结果,就不会求第二个的值
- 逻辑或(OR)用||表示,有两个操作数,它是短路操作符,第一个求值为true,就不会对第二个求值,
四,乘性操作符,定义了3个乘性操作符,乘法,除法,求模,在操作非数值的时候,后台会自动的转换类型,
- 乘法,用(*)表示,计算两个数值的乘积,如果操作数不是数值,后台会自动的转换为数值
- 除法,用(/)表示,执行第二个操作数除以第一个操作数,如果操作数不是数值,后台会自动的转换为数值
- 求模,用(%)表示,操作数都是数值,常规计算,返回除得的余数,如果操作数不是数值,后台会自动的转换为数值
五,加性操作符和减性操作符, +,-
- 加法操作符,用(+)表示,也会在后台转换不同的数据类型,操作数都是数值,常规计算,
- 减法操作符,用(-)表示,操作数都是数值,常规计算,
六,关系操作符,小于(<),大于(>),小于等于(<=),大于等于(>=),用于两个值的比较,都会返回一个布尔值,
关系操作符也有相应的规则,如下:
- 如果两个操作数都是数值,执行数值比较,
- 如果两个操作数都是字符串,比较两个字符串对应的字符编码值
- 如果一个操作数是数值,将另一个操作数转换为数值,在进行数值比较
- 如果一个操作数是布尔值,将其转换为数值,在比较
- 任何一个操作数 与NaN比较,都是false
七,相等操作符,确定两个变量是否相等是编程中非常重要的操作,两个方案:1. 相等和不相等,先转换在比较,2. 全等和不全等,就比较不转换
- 相等和不相等,相等用(==)表示,不相等用(!=)表示, 这两个操作符都会先转换(强制转型),然后在比较它们的相等性,
在转换不同数据类型时,会遵循以下规则:
- 全等和不全等,全等用(===)表示,不全等用(!==)表示,它们的操作数都是在未经转换的情况下返回布尔值,
为了保护代码的数据类型完整性推荐使用全等和不全等,关键词排名查询工具请添加链接描述