javascript高级程序设计笔记(二)
2014-04-24 14:28
330 查看
day 02
操作符1,对非数值应用一元操作符时,该操作对象会像Number()转型函数一样对该数值进行转换。
2,不能在逻辑与上操作未定义的值
3,可以利用逻辑或来避免为变量赋null或undefined值。如下:
var m = pre || bac ;
在上述例子中,变量m将被赋予等号后面两个值中的一个,pre将优先赋给m,bac变量负责在pre中不包含有效值的情况下提供后备值。如果pre的值不是null,那么将赋给m,如果为null,则将bac赋给m。
4,任何操作数与NaN进行关系比较,结果都是false,于是,有以下有意思的现象:
var result = NaN < 3; //false var result = NaN >=3; //false
5,每个主要算术操作符都有对应的复合赋值操作符,如
乘/赋值 *=
除/赋值 /=
加/赋值 +=
等等,设计这些操作符的主要目的就是简化赋值操作,使用它们不会带来任何性能的提升。
6,逗号运算符用于赋值时,总会返回表达式中的最后一项,如下:
var num = (4,23,5,2,6);
由于6是表达式中的最后一项,因此num的值就是6。
语句
switch
switch语句可以使用任何数据类型,无论是字符串,还是对象都没有问题。switch语句在比较值时使用的是全等操作符(如 ===),因此不会发生类型转换(如字符串“10”不等于数值10)
函数
理解参数
ECMAScript函数没有重载(不存在函数签名),可以模仿
1,ECMAScript函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型。就是说,即便定义的函数只接收两个参数,在调用这个函数时也未必一定要传入两个参数。可以传多个或者不传。因为ECMAScript函数参数在内部是用一个数组来表示的,函数接收的始终是这个数组,而不关心数组中包含哪些参数(如果有),实际上,可以通过arguments对象(不是Array的实例)来访问这个参数数组。如下:
function sayhi(){ alert("hello " +arguments[0] + ", "+ arguments[1]); } function test(){ sayhi("test1","test2") }调用test函数,弹出 “hello test1, test2”。
通过访问arguments对象的length属性可以获知有多少个参数传递给了函数,利用这点,开发的时候可以接收任意个参数分别实现适当的功能,如下:
function doAdd(){ if(arguments.length ==1) { alert(arguments[0] + 10); } else if(arguments.length == 2) { alert(arguments[0] +arguments[1]); } } doAdd(10);//弹出20; doAdd(30,20;//弹出50
除此之外,arguments对象可以与命名参数一起使用。num1(第一个命名参数)与arguments[0]的值相同,可以互换使用,并且永远与对应命名参数的值保持同步。如下:
function doAdd(num1,num2){ arguments[1] = 10; alert(arguments[0] + num2);//11 } doAdd(1,2);
函数在定义时可以没有返回值;在没有指定返回值时,函数返回的是一个undefined。
相关文章推荐
- javascript高级程序设计笔记(第4章 变量、作用域和内存问题)
- Javascript高级程序设计第二版第六章--面向对象程序设计(Object-Oriented Programming)简称OOP编程--笔记
- JavaScript高级程序设计笔记 事件冒泡和事件捕获
- javascript高级程序设计--笔记01
- JavaScript高级程序设计-学习笔记3
- 【javascript高级程序设计笔记】第一章至第三章
- JavaScript高级程序设计之基本概念之数据类型第3.4讲笔记
- JavaScript高级程序设计笔记
- JavaScript 高级程序设计——JavaScript简介笔记
- JavaScript高级程序设计 第3章 学习笔记
- JavaScript高级程序设计之函数表达式之私有变量之增强的模块模式第7.4.3讲笔记
- JavaScript高级程序设计笔记(2)_在HTML中使用js
- JavaScript高级程序设计(第三版)学习笔记8、9、10章
- JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
- JavaScript高级程序设计(第三版) 学习笔记(一)JavaScript简介
- JavaScript高级程序设计笔记------函数
- js-JavaScript高级程序设计学习笔记12
- JavaScript高级程序设计学习笔记--事件(二)(事件对象--DOM中的事件对象/IE中的事件对象/跨浏览器的事件对象)
- JavaScript高级程序设计 事件学习笔记
- JavaScript高级程序设计之BOM之window 对象之全局作用域 第8.1.1讲笔记