1

根据百度学院的教程复习下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"];
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规范)

  • 列表项目

6.闭包

7.this

8.跨域


EMMA
160 声望15 粉丝

简单的日子重复一年