依据百度学院的教程温习下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范例)
列表项目