DAY ONE:
*说明:*学习的网站为廖雪峰官网,这里主要记录一些小技巧技术。
- 比较运算符 == 与 ===
这两种运算符,均为比较运算符
a.第一种是==比较,先 自动转换数据类型——>后 比较。
b.第二种是 === 比较,不会自动转换类型,如果,类型不一致,返回false;如果类型一致,在进行比较。 - null 和undefand:
null:表示一个‘空’的值,与0、空字符串’ ‘不同,0是一个值,而’ '表示长度为0的字符串,null表示 - 变量的命名:
可以是大小写英文、数字、**$和_**的组合,且不能以数字开头,不能使js的关键字 - strict模式:
在js设计之初时,并没有强制使用var申明变量。这个设计带来的后果是:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量;
如果两个变量的命名相同,会导致两者之间互相影响,产生难以试调的结果。
解决:ECMA在后续推出此模式,在strict模式下运行js代码,强制通过var申明变量,未使用会导致运行错误。 - if…else …语句:
if…else…语句的执行特点,二选一,即在多个if…else…语句中,如果某个条件成立,则后续就不在继续判断。
注 js把null、undefined、0、Nan、空字符串’ ',视为false,其他值一概视为true. - 循环:
a. for循环的三个条件都可以省略,但如果没有退出for循环的判断条件,就必须使用break语句退出循环,否则就是死循环。
var x = 0;
for (;;) { // 将无限循环下去
if (x > 100) {
break; // 通过if判断来退出循环
}
x ++;
}
b. for…in…:把对象的所有属性依次循环出来:
var o = {
name:'duus',
age:25,
city:'深圳',
}
for (var key in o){
if (o.hasOwnProperty(key)) {
console.log(key) // 打印结果:'name','age','city'
}}
注:如需过滤掉继承的的属性,可以使用hasOwnProperty().
c. for…of…循环,与for…in…循环类似,唯一的区别是:他只循环集合本身的元素。
d. 可直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动调回该函数。
'use strict';
var a = ['A', 'B', 'C'];
a.forEach(function(element,index,array){
// element:指向当前元素的值
// index:指向当前索引
// array:指向Array对象本身
console.log(element+',index:'+index)
})