您的位置:首页 > Web前端 > JavaScript

JavaScript高级程序设计第三章基本概念——总结

2018-02-11 08:15 344 查看

数据类型

1.undefined:未初始化和未声明的变量执行typeof都返回undefined,但是alert一个未初始化变量是undefined,而alert一个未声明变量则会报错。
2.null:null是一个空对象指针,所以typeof null的时候返回的是Object,如果定义一个准备在将来保存对象的变量,但是现在还没有真正保存对象,就应该明确的让该变量保存null值,还有就是,undefined的值是派生自null值的。
3.boolean:要将一个值转化为Boolean值,可以调用转型函数Boolean(),其中""(空字符串),0和NaN,undefined,null转型之后都是false。
4.number:NaN的两个特点:任何涉及到NaN的操作都会返回NaN,NaN与任何值都不相等,包括NaN。针对这两个特点,定义了isNaN()函数,任何不能被转化为数值的值都会返回true。
有三个函数可以把非数值转化为数值:Number(),parseInt(),parseFloat()
Number()函数:如果是null返回0,如果是undefined返回NaN,如果是字符串“1”转换为1,“01”转化为1(忽略前导零),如果是“01.1”转化为1.1(忽略前导零),如果是十六进制,转化为十进制数,如果是空字符串“”,转化为0,特殊字符字符串转化为NaN.
parseInt()函数:这个函数在转化字符串的时候,会忽略字符串前面的空格,找到第一个非空字符串,如果第一个字符不是数字或者是负号,parseInt()就会返回NaN,对于空字符串“”,undefiend,null,则返回NaN,这个函数有两个参数,第一个参数是数值,第二个参数是转换基数(多少进制)parseInt("AF",16);//175 ,parseInt("AF");//NaN 
parseFloat()函数:也是从第一个字符开始解析每一个字符,一直解析到字符串末尾,或者遇到一个无效的浮点数字字符为止。字符串中第一个小数点有效,第二个小数点无效,对于十六进制字符串会始终转化为0,parseFloat("0xA");//0,parseFloat()只解析十进制数,因为他没有第二个参数。
5.string:把一个值转化为字符串有两种方式toString()和String()
toString()函数:返回相应字符串,null和undefined没有这个方法,可以传递参数,输入数值基数(进制数)var num = 10;
alert(num.toString());//默认情况十进制"10"
alert(num.toString(2))//"1010" String()函数:所有值都有的方法,如果值有toString()方法则调用toString()方法,null返回“null”,undefined返回“undefined”。

操作符

1.后置递增递减操作符与前置递增递减操作符的区别是:后置递增递减操作符在包含他的语句被求值之后才执行
2.乘法:如果一个操作数是NaN,则结果是NaN,如果是Infinity与0相乘,则结果是NaN,如果是Infinity与非0数值相乘,则结果是Infinity或者-Infinity,取决于有符号操作数的符号,如果是Infinity与Infinity相乘,则结果是Infinity
3.除法:如果一个操作数是NaN,则结果是NaN,如果Infinity/Infinity,则结果是NaN ,如果0/0,则结果是NaN,如果是Infinity/0,
则结果是Infinity,如果是0/Infinity,则结果是0,如果是非零的有限数被零除,则结果是Infinity或者-Infinity,取决于有符号操作数的
符号,如果是Infinity被任何非零数值除,则结果是Infinity或者-Infinity,取决于有符号操作数的符号
4.取模:如果一个操作数是NaN,则结果是NaN,如果一个无穷大的数除以一个有限大的数,则结果是NaN 例如:(Infinity%2),如
果一个有限大的数除以0,则结果是NaN 例如:(2%0),如果是0%0,则结果是NaN,如果是Infinity/Infinity,则结果是NaN,如果
是Infinity%0,则结果是NaN,如果是0%Infinity,则结果是0,如果有限大的数除以无限大的数Infinity,则结果是被除数,那个有限大
的数,如果被除数是0,则结果是0。Infinity与任何数取模都是NaN。
5.加法:如果一个操作符是NaN,则结果是NaN,如果Infinity加Infinity,则结果是Infinity ,如果-Infinity加-Infinity,则结果是
-Infinity,如果Infinity加-Infinity,则结果是NaN, 如果是+0加+0,则结果是+0, 如果是-0加-0,则结果是-0,如果是+0加-0,
则结果是+0。
6.减法:如果一个操作符是NaN,则结果是NaN ,如果是Infinity减Infinity,则结果是NaN,如果是-Infinity减-Infinity,则结果是
NaN,如果是Infinity减-Infinity,则结果是Infinity,如果是-Infinity减Infinity,则结果是Infinity,如果是+0减+0,则结果是+0,
如果是+0减-0,则结果是+0,如果是-0减-0,则结果是+0,如果是-0减+0,则结果是-0
对于加法和减法关于0的总结就是,有两个 -(减号或负号都算)的都是-0,其余都是+0!!!除了+0--0为+0
7.关系操作符(>,<,>=,<=)如果一个操作数是数值,则将另一个操作数也转化为数值,然后执行数值比较

alert("23" < 3);//false 一个操作数是数值,则将另一个也转换成数值再比较 23与3比较 

alert("23" < "3");//true 两个操作数都是字符串,比较字符编码("2"的字符编码是50,"3"的字符编码是51)

alert("a" < 3);//false 字母"a"不能转化成合理的数值,因此就被转化成NaN,任何操作数与NaN进行比较,结果都是false
8.相等操作符,相等不相等——先转换再比较,全等不全等——仅比较不转换
相等不相等:0,“”和false相等,null和undefined与false不相等, null和undefined是相等的,NaN不与任何值相等。
null == undefined;//true null===undefined;//false

语句

for-in语句用来枚举对象属性
switch语句,case可以是变量,表达式,范围,字符串。在switch与case比较的时候,是全等操作符,不会发生类型转换。

函数

函数会在执行完return语句之后停止并立即退出,因此,位于return语句之后的任何代码都永远不会执行。return语句也可以不带有任何返回值,在这种情况下,函数在停止执行后将返回undefined值,这种用法一般用在需要提前停止函数执行而不需要返回值的情况下。
arguments对象只是与数组类似,因为可以使用方括号语法访问他的每一个元素(arguments[0],arguments[1]),使用length属性来确定传递了多少参数
如果只传入一个参数,那么为arguments[1]设置的值不会反映到命名参数中,这是因为arguments对象的长度是由传入的参数个数决定的,而不是由定义函数时的命名参数决定的。关于参数还要记住最后一点:没有传递值的命名参数将自动被赋予undefined值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: