根据百度学院的教程复习下js基础,在这里做一个汇总笔记
1.数据类型、判断
最新的 ECMAScript 标准定义了 7 种数据类型:
string
number
boolean
undefined
null
symbol(new in ECMAScript 6)
object
注意:function array 皆是对象
1.1 数据的定义
null&undefined的区别和联系
undefined:未定义,没有被赋值的变量默认值是undefined
null:不存在
null == undefined // true
null === undefined // false
-
定义对象
访问对象属性&枚举
person.name // feifei
person["name"] // 在方括号内以字符串形式访问属性
var key = 'name'
person[key] //feifei
hasOwnProperty(obj.key)//检测key属性是否,是对象本身的属性值
forin,遍历对象的所有属性,包括原型链对象上的属性。+hasOwnProperty,遍历对象自身属性。
注意:forin,乱序遍历对象属性。
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
console.log(i)
}
}
注意:因为for in 会遍历整个原型链的所有属性值,所以效率较for循环慢了很多。
相关方法:Object.keys(),Object.getOwnPropertyNames()有空看
删除对象属性:delet obj.key。注意,把属性设置为undefined或null是无效的
定义数组
数组可以保存任何值,并且可以混合保存
//2种方法创建数据, 构造函数和数组直接量,它们的区别?
var colors = new Array()//创建空数组
var colors = new Array(20)//传数值,创建length 20
var colors = new Array("red","blue","yellow")//
注意:可省略new字符
var colors = [];
var colors = ["red","blue","yellow"];
数组原生方法:http://yanhaijing.com/javascript/2014/01/17/fun-with-javascript-native-array-functions/
栈和队列.pop,.push,.shift和.unshift
排序.sort
连接.join和合并数组.concat
复制.slice(start,end)
截取.splice(index, howmany, element1, ….., elementX)
逆序.reverse
查找.indexOf(es5)
var a = [1,2,3];
[1,2,3].join //返回'1,2,3'
[1,2,3].concat(4,5)//返回新数组,[1,2,3,4,5]
[1,2,3].slice(0,2)//返回拷贝的新数组
//splice可以删除、插入、替换, 在原数组上修改
[1,2,3].splice(0,1)//[2,3]
[1,2,3].splice(0,0,0)//[0,1,2,3]
[1,2,3].splice(0,1,1)//[0,2,3]
[1,2,3].reverse//[3,2,1]
1.2 数据的判断
相等和比较 == & ===,推荐===
typeof,实际应用场景检测一个对象是否已经定义或者是否已经赋值,而不是检查数据类型
instanceof
一些常见的考察点:数组的判断
2.js基础
==与===的区别
== equality 等同,=== identity 恒等。
==, 两边值类型不同的时候,要先进行类型转换,再比较。
===,不做类型转换,类型不同的一定不等
3.dom操作
4.事件机制
几个概念:事件流,事件冒泡,事件捕获
addEventListener(event,listener)&attachEvent("on"+event,listener)
5.原型继承面向对象
前端模块化(amd&cmd规范)
列表项目
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。