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

1.若是已经声明了一个变量,可是没有对变量赋值,则该变量的值为undefined,即尚未肯定的数据类型javascript

2.变量提高:js引擎的工做方式是,先解析代码,获取全部被声明的变量,而后再一行一行的运行,这形成的结果就是全部的变量声明语句,都会被提高到代码的头部,这就叫变量提高,如java

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

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

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

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

3.js对标志符的大小写敏感,因此a和A是两个不一样的标志符spa

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

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

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

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

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-----这些方法的好处在于他们能够链式使用

相关文章
相关标签/搜索