javascript学习笔记---9月6日

1.如果已经声明了一个变量,但是没有对变量赋值,则该变量的值为undefined,即还没有确定的数据类型

2.变量提升:js引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行的运行,这造成的结果就是所有的变量声明语句,都会被提升到代码的头部,这就叫变量提升,如

console.log(a);
var a = 1 ;

上面的代码在声明变量a之前就使用它,这是一种错误的做法,但不会报错,其实真正运行的是下面的代码

var a;
console.log(a);
a = 1;

最后的结果是现实undefined,表示变量已声明,但还未赋值

3.js对标志符的大小写敏感,所以a和A是两个不同的标志符

4.js中的条件语句有if else,switch,循环语句有while,for,do while,break(用于在循环体中跳出循环),continue(用于不再进行本次循环的后续操作,直接进入下一次循环)

5.如果字符串后面有方括号,表示返回某个位置的字符,从0开始,如'abc'[1],表示字母b。如果方括号中的数字超过字符串的范围或者方括号中根本不是数字,则返回undefined,这是因为js内部把字符串视为由单个字符组成的数组

6.如果js预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值,转换规则除了下面5个值被转换为false外,其他都是true。他们分别是 undefined,null,false,0(NaN),""。空数组和空对象对应的值也是true

7.检测变量类型:typeof和 instanceof

8.js内部,所有数字都是以64位浮点数形式存储,即使整数也是如此,由于浮点数不是精确的值,所以涉及小数的比较和运算要特别注意

9.NaN表示非数字,主要出现在将字符串解析成数字出错的成河,数据类型属于number。它在数值运算时被当作0,在布尔运算时被当作false

10.isNaN()可以用来判断一个值是否为isNaN,如isNaN(parseInt('hello world'))返回true,对于数组和对象也会返回true

11.Infinity表示无穷,除了0除以0得到NaN,其他任意数除以0都得到Infinity,它有正负之分

12.parseInt()方法可以将字符串或小数转化为整数,如果字符串头部有空格,会被去除,如parseInt('12.3')返回12,如果字符串中有不能转换为数字的字符,则不再进行转换,返回已经转好的部分

13.如下代码可以创建一个数组,var a = new Array(1,4,'r') 或者 var a = [9,'sf',54];

14.检查某个键是否存在的运算符in,使用于数组,也使用于对象

2 in ['a',34,'fd']     //返回true
'2' in ['a',34,'fd']   //返回true

15.使用for-in循环,可以遍历数组的所有元素(也可以使用for循环)

var a = ['ew',54,'534'];
for(var i in a){
  console.log(a[i]);
}

16.对象成员的引用可以使用“点”结构(object.key),也可以使用方括号表示,但是数组成员不能使用,arr.0不合法,因为数字不是标志符,所以数组成员只能用方括号来表示

17.length属性表示数组的元素个数,添加新元素后,该元素会自动增长。length属性是可写的,如果认为设置一个小于当前元素个数的值,该数组的元素会自动减少到你设置的值;如果要将一个元素清空,就是将length属性设置为0;如果人为设置大于当前元素个数的值,则数组的长度增加到改制,新增的位置填入空元素

18.如果使用delete命令删除一个值,不影响length属性的值

var a = ['fsd',3,6];
console.log(a.length); //输出3
delete a[1];
console.log(a.length) //输出3

19.由于length属性的特点,使用它进行for循环遍历时要很小心,会遗漏非数字键的属性,并且会包括undefined的值

20.EcmaScript5中新加入的数组方法:map,forEach,filter,every,some,reduce,reduceRight,上面7个与函数式操作有关,indexOf,lastIndexOf-----这些方法的好处在于他们可以链式使用

 

posted @ 2013-09-06 15:26  山贼一名  阅读(234)  评论(0编辑  收藏  举报