JS的组成
JS由三部分组成:
- ECMAScript:JS核心语法部分。
- DOM:文档对象模型
- BOM:浏览器对象模型
JS的运行环境
#### windows、nodejs
对象:
检测属性:
-
in:某属性是否是某对象的自有属性或继承属性 console.log(‘属性名’ in 对象); -
Object.prototype.hasOwnProperty() 检测给定的属性是否是对象的自有属性,对于继承属性将返回false -
Object.prototype.propertyIsEnumerable() 是hasOwnProperty()的增强版,除了是自身属性外,还要求是可枚举属性,即我们创建的属性。
JS只有全局作用域(global scope)、函数作用域(function scope),从ES6开始才有块级作用域(block scope)。
Object原型属性及方法
constructor
保存用户创建当前对象的函数,与原型对象对应的构造函数。
hasOwnProperty(propertyName)
检查给定的属性是否是对象的自有属性
propertyIsEnumerable(propertyName)
? 检查给定的属性在当前对象实例中是否存在
valueOf()
? 返回对象的字符串,数值,布尔值的表示
toLocaleString()
? 返回对象的字符串表示,该字符串与执行环境的地区对应
toString()
? 返回对象的字符串表示
isPrototypeOf(object)
? 检查传入的对象的原型
函数
函数声明
function 函数名(形参列表){ //函数体 }
函数调用
函数声明好之后并不会直接运行,需要进行调用才能运行。
方式:
- 函数名(实参列表);
- 函数名.call(执行环境对象,实参列表);
- 函数名.apply(执行环境对象,实参列表数组);
- 函数名.bind(执行环境对象)(实参列表);
1.call(执行环境对象,实参列表); 2.apply(执行环境对象,实参列表数组); 3.bind(执行环境对象)(实参列表);
this的指向
- 在方法中,this表示该方法所属的对象
- 如果单独使用,this表示全局对象
- 在函数中,this表示全局对象
- 在事件中,this表示接收事件的元素
闭包
闭包:是指有权访问另一个函数作用域中的变量的函数。
数组
数组的创建
var names = ["terry","larry","tom"]
var name = "name"
var arr = [12,name,true,"larry",{},function(){},[],null];
console.log(arr,arr[2]);
console.log(arr.length);
var names = new Array();
构造函数的方法
Array.isArray():用来判断某个变量是否是一个数组对象。 Array.from():创建一个新数组实例。 Array.of():根据一组参数来创建的数组实例,支持任意的参数数量和类型。
数组方法(部分)
- Array.prototype.push()
- Array.prototype.pop()
- Array.prototype.shift()
- Array.prototype.unshift()
- Array.prototype.every()
- Array.prototype.some()
- Array.prototype.filter()
- Array.prototype.map()
- Array.prototype.forEach()
|