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 ...
随机推荐
- highcharts 代码都对,但是不显示图片
$('#container').highcharts({ chart: { zoomType: 'xy' }, title: { text: 'Average Monthly Temperature ...
- SpringCloud(七)之SpringCloud的链路追踪组件Sleuth实战,以及 zipkin 的部署和使用
一.前言 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案 ,并且兼容了zipkin,提供了REST API接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序 . ...
- C++ STL——map和multimap
目录 一 map和multimap 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 map和multimap map相对于set的区别:map具有键值和实值,所有元素根据键值自动排序.pai ...
- sed与awk
sed 格式 sed 选项 控制命令 文件或标准输入 sed 流程: (循环打印) sed是将文件里的每一行读入模式空间进行操作, sed选项 -r 支持正则表达 -n 取消默认打印 清空当前模式空间 ...
- Android下文件访问的权限
* 默认情况下,Android中,应用程序的文件时私有的,其他应用程序不可以读取私有的文件 * 底层用的时Linux文件的权限 - rw- rw- --- - :文件 ...
- document.querySelectorAll遍历
document.querySelectorAll兼容性良好,在之前的项目中就其遍历方式出了错误,先做个小结: 1.for循环 传统遍历方法 for(var i= 0; i< document. ...
- mvc导出数据到pdf
using iTextSharp;using iTextSharp.text;using iTextSharp.text.pdf; , , ") { System.Collections.A ...
- LVS系列二、LVS集群-DR模式
一. LVS-DR和LVS-IP TUN集群概述 1. Direct Routing(直接路由) Director分配请求到不同的real server.real server处理请求后直接回应给用 ...
- mysql innodb阻塞分析
http://blog.csdn.net/hw_libo/article/details/39080809
- 硬盘相关合集,以及LVM操作实践
1. 机器装有两块硬盘,重装系统只找到一块盘,如何解决? 正常装完系统后,运行: a. lsblk查看硬盘信息,这里可以发现还没有使用的另一块盘. b. fdisk或parted给硬盘分区,取决于硬盘 ...