JS ES5
常用
严格模式 use strict
- 必须使用var声明变量
- 禁止自定义函数this指向window
'use strict'
funcion Person(name){
this.name = name;
}
Person("Tom"); //error
new Person("Tom"); //right
- 为eval创建作用域
- 对象属性名不能重复
JSON对象
JSON.stringify(obj/arr)js对象(数组)转json对象(数组)JSON.parse(json)json对象转(数组)js对象(数组)
Object扩展
Object.create(prototype, [descriptors])以指定对象为原型创建新的对象
var man = {sex:'mail'};
var person = Object.create(man, {
name: {
value: '',
writable: true, //可写
configurable: true, //可配置(可删除)
enumerable: true //可枚举
}
})
person.name = 'Tom';
for (let value in person) {
console.log(value); //name sex
}
Object.defineProperties(object, descriptors)为指定对象定义扩展多个属性
var obj1 = {
firstName: 'Kevin',
lastName: 'Tseng'
};
Object.defineProperties(obj1, {
fullName: {
//获取
get: function(){
return this.firstName + '-' + this.lastName;
},
//监听
set: function(data){
var nameArr = data.split("-");
this.firstName = nameArr[0];
this.lastName = nameArr[1];
}
}
})
console.log(obj1.fullName); //Kevin-Tseng
obj1.fullName = "Tom-Smith";
console.log(obj1.fullName, obj1.firstName); //Tom-Smith Tom
Array扩展
- indexOf()
- lastIndexOf()
- forEach(function(item, index){})
- map(function(item, index){})
- filter(function(item, index){})
Function扩展
- call()
Function.call(obj, arguments) 将函数送给某对象,立即执行 - apply()
Function.apply(obj, [arguments]) 将函数送给某对象,立即执行 - bind()
Function.call(obj, arguments) 将函数送给某对象,调用执行
var obj = {name: 'Kevin'};
function foo(data){
console.log(this, data);
}
foo.call(obj, 33);//{name: "Kevin"} 33
foo.apply(obj, [28]);//{name: "Kevin"} 28
foo.bind(obj)(22); //{name: "Kevin"} 22
setTimeout(function(data){
console.log(this, data); //{name: "Kevin"} 18
}.bind(obj, 18),1000);
JS ES5的更多相关文章
- Atitit js es5 es6新特性 attilax总结
Atitit js es5 es6新特性 attilax总结 1.1. JavaScript发展时间轴:1 1.2. 以下是ES6排名前十的最佳特性列表(排名不分先后):1 1.3. Es6 支持情况 ...
- JS - ES5与ES6面向对象编程
1.面向对象 1.1 两大编程思想 1.2 面向过程编程 POP(Process-oriented programming) 1.3 面向对象编程 OOP (Object Oriented Progr ...
- js语言规范_ES5-6-7_个人总结
## **理解ES** 1. 全称: ECMAScript 2. js语言的规范 3. 我们用的js是它的实现 4. js的组成 * ECMAScript(js基础) * 扩展-->浏览 ...
- js没事干应该瞧瞧的一些博客
https://zhidao.baidu.com/question/1736568808722198187.html http://www.cnblogs.com/webpush/p/4963002. ...
- JS控制页面内容
JS操作页面内容 innerText:普通标签内容(自身文本与所有子标签文本)innerHTML:包含标签在内的内容(自身文本及子标签的所有)value:表单标签的内容outerHTML:包含自身标签 ...
- JS高级语法与JS选择器
元素(element)和节点(node) childNode属性和children属性的区别 <!DOCTYPE html> <html lang="en"> ...
- js 使用ES6 实现从json中取值并返回新的数组或者字符串
1.获取的json数据是这样的: data:[ { 'Id': '1', 'Phone': '123456', 'Name': '张三', }, { 'Id': '2', 'Phone': '7894 ...
- JS 对象 数组求并集,交集和差集
一.JS数组求并集,交集和差集 需求场景 最近,自己项目中有一些数组操作,涉及到一些数学集的运算,趁着完成后总结一下. 简化问题之后,现有两数组a = [1, 2, 3],b = [2, 4, 5], ...
- js function All In One
js function All In One js ES5 Function & js Arrow Function Object vs Array 花括号 ?对象 , 傻傻分不清 // ar ...
随机推荐
- 订阅发布模式eventEmiter
// 订阅发布模式 class EventEmitter { constructor() { this._events = {}; } on(name, callback) { if (this._e ...
- PHP生成带logo图像二维码的两种方法
本文主要和大家分享PHP生成带logo图像二维码的两种方法,主要以文字和代码的形式和大家分享,希望能帮助到大家. 一.利用Google API生成二维码Google提供了较为完善的二维码生成接口,调用 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-2.中大型公司里面项目开发流程讲解
笔记 2.中大型公司里面项目开发流程讲解 简介:讲解一个项目如何从零到上线,经历过怎样的步骤和流程 1.一个中大型项目的开发流程,从需求调研到项目上线 ...
- centos7操作
一.安装系统 1.下载(Minimal ISO)http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1 ...
- 树莓派实现摄像头监控(使用motion和mjpg-streamer)
购买raspBerryCarmen,大概20元, 启动树莓派,安装: `sudo apt install motion` 配置/etc/motion/motion.conf, `sudo vim /e ...
- 在centos卸载mysql
1 rpm -qa|grep mysql 查看安装了哪些mysql和lib…… 1 yum remove mysql mysql-server mysql-libs compat-mysql51 删除 ...
- 多版本YUM仓库搭建
服务器:CentOS7 YUM源:阿里云 空间要求:CentOS6+CentOS7 50G,考虑后期更新预留,LVS空间100G 1.在服务器配置CentOS7的yum源和CentOS6的yum源 ...
- freeRTOS学习8-21
不能再中断服务程序调用该函数 应该调用xQueueSendFromISR()
- python之函数对象、名称空间、嵌套、作用域、闭包
函数对象 # 函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象# 函数对应的原因# 1 可以直接被引用# 2 可以当作函数参数传递# 3 可以作为函数的返回值 ...
- 页面元素定位-----android真机
一.移动终端开发者选项启用USB调试模式 二.USB线连接移动终端,CTRL+R启动DOS窗口,输入:adb devices,出现以下信息,说明连接成功 三.启动appium,配置appium相关信息 ...