常用

严格模式 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的更多相关文章

  1. Atitit js es5 es6新特性 attilax总结

    Atitit js es5 es6新特性 attilax总结 1.1. JavaScript发展时间轴:1 1.2. 以下是ES6排名前十的最佳特性列表(排名不分先后):1 1.3. Es6 支持情况 ...

  2. JS - ES5与ES6面向对象编程

    1.面向对象 1.1 两大编程思想 1.2 面向过程编程 POP(Process-oriented programming) 1.3 面向对象编程 OOP (Object Oriented Progr ...

  3. js语言规范_ES5-6-7_个人总结

    ## **理解ES** 1. 全称: ECMAScript 2. js语言的规范 3. 我们用的js是它的实现 4. js的组成   * ECMAScript(js基础)   * 扩展-->浏览 ...

  4. js没事干应该瞧瞧的一些博客

    https://zhidao.baidu.com/question/1736568808722198187.html http://www.cnblogs.com/webpush/p/4963002. ...

  5. JS控制页面内容

    JS操作页面内容 innerText:普通标签内容(自身文本与所有子标签文本)innerHTML:包含标签在内的内容(自身文本及子标签的所有)value:表单标签的内容outerHTML:包含自身标签 ...

  6. JS高级语法与JS选择器

    元素(element)和节点(node) childNode属性和children属性的区别 <!DOCTYPE html> <html lang="en"> ...

  7. js 使用ES6 实现从json中取值并返回新的数组或者字符串

    1.获取的json数据是这样的: data:[ { 'Id': '1', 'Phone': '123456', 'Name': '张三', }, { 'Id': '2', 'Phone': '7894 ...

  8. JS 对象 数组求并集,交集和差集

    一.JS数组求并集,交集和差集 需求场景 最近,自己项目中有一些数组操作,涉及到一些数学集的运算,趁着完成后总结一下. 简化问题之后,现有两数组a = [1, 2, 3],b = [2, 4, 5], ...

  9. js function All In One

    js function All In One js ES5 Function & js Arrow Function Object vs Array 花括号 ?对象 , 傻傻分不清 // ar ...

随机推荐

  1. 利用beautifulsoup下载网页html代码中的css, js, img文件并保存

    # -*- coding:utf-8 -*- from bs4 import BeautifulSoup as BS import urllib.request as rqst import os u ...

  2. jmeter 执行python脚本的方法 。(亲测ok)

    jmeter 执行python脚本   jmeter 可以通过Jython 执:行python代码 1.下载Jython jar包:http://www.jython.org/downloads.ht ...

  3. selenium 2019 笔记

    1.get打开本地目录的方法

  4. Fiddler抓取https设置详解(图文)

    本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各种奇葩问题,特此分享! 声明:本文为原创文章,转载请注明来源:https: ...

  5. 新股定价谁说了算?一文读懂中国IPO询价制度

    总体来说,在市场化条件下,确定股票首次公开发行的价格可以分为两个步骤:一是股票估值:选择一定的股票估值模型,对拟发行股票的公司进行估值,并初步确定发行价格和询价区间:二是发现股票市场价格,主要方式是I ...

  6. vue中父组件调用子组件的方法

    原文地址 文章目录 什么是组件? 使用组件 组件 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自 ...

  7. 【POJ - 1970】The Game(dfs)

    -->The Game 直接中文 Descriptions: 判断五子棋棋局是否有胜者,有的话输出胜者的棋子类型,并且输出五个棋子中最左上的棋子坐标:没有胜者输出0.棋盘是这样的,如图 Samp ...

  8. Python处理字符串和列表元组的小技巧

    变量值互换 a = 1 b = 100 # 变量值互换 a, b = b, a print('a:', a) print('b:', b) 输出结果: a: 100 b: 1 多个变量赋值 a, b, ...

  9. C语言I—2019秋作业第一周作业

    1.你对软件工程专业或者计算机科学与技术专业了解是怎样? 软件工程专业是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设 ...

  10. hdoj5909 Tree Cutting(点分治+树上dp转序列dp)

    题目链接:https://vjudge.net/problem/HDU-5909 题意:给一颗树,结点带权值v[i]<m.求异或和为k的子树个数(0<=k<m). 思路: 首先点分治 ...