码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript读书笔记(3)-操作符、语句和函数

时间:2015-06-04 22:38:36      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

1、  操作符

(1)       一元操作符

前置递增和递减操作符,变量的值都是在语句被求值以前改变的;后置相反

(2)       位操作符

在ECMAScript中,对数值进行位操作时,会发生以下转换过程:64位的数值被转换为32位数值,然后执行位操作,最后再将32位的结果转换回64位数值;

右移分为有符号右移(>>)和无符号右移(>>>)

(3)       布尔操作符-(!)(&&)(||)

(4)       全等操作符(===)只在两个操作数未经转换就相等的情况下返回true;

2、  语句

(1)       for-in语句是精准的迭代语句,用来枚举对象的属性;若对象为null或undefined,不执行循环体,使用之前,先检测该对象的值不是null或undefined;

(2)       lable语句-在代码中添加标签,以便将来使用,加标签的语句一般都要与for语句等循环语句配合使用;即与break和continue语句配合使用,指向代码中特定的位置;

(3)       with语句,将代码的作用域设置到一个特性的对象中,主要是为了简化多次编写同一个对象的工作;不建议使用;

3、  函数

(1)       ECMAScript中的函数在定义时不必指定是否返回值;但可以用return返回值,return之后的代码永远不会执行;

Return语句不带任何返回值时,函数在停止执行后返回undefined;

(2)       严格模式对函数的限制:

不能把函数名和参数名命名为eval或arguments;不能出现两个命名参数同名的情况;

(3)       参数

ECMAScript函数不介意传递进来少个参数,也在乎传递进来参数是什么数据类型,ECMAScript中的参数在内部是用一个数组来表示的;在函数体内可以通过arguments对象来访问参数数组;

对于ECMAScript函数来说-命名参数只提供便利,但不是必须的;

Arguments的值永远与对应命名参数的值保持同步,Arguments对象中的值会自动反映到对应的命名参数;但修改命名参数不会改变arguments中对应的值;因为他们的内存空间是独立的;

如果只传入了一个参数,那么为arguments[1]设置的值,是不会反映到命名参数中,arguments对象的长度由传入的参数个数决定,不是由定义函数时的命名参数的个数决定的;

没有传递值的命名参数将自动被赋予undefined值;

严格模式对arguments的限制:Arguments的值与对应命名参数的值不保持同步;重写arguments的值会导致语法错误;

ECMAScript中所有参数传递的都是值,不可能通过引用传递参数;

(4)重载

ECMAScript函数没有重载,若定义两个名字相同的函数,则该名字只属于后定义的函数;

 

总结:对于函数,终于明白了以前看不明白的很多地方,原来都是有规定的;这几天一直都是理论,并且都是书中的原话,其实更多的是去实践,去理解,努力ing;

JavaScript读书笔记(3)-操作符、语句和函数

标签:

原文地址:http://www.cnblogs.com/xyl-share-happy/p/4553041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!