es5

ES5

喜夏-厌秋 提交于 2019-12-01 09:58:55
ES5 数据类型 六种 基本数据类型 :数字Number、字符串String、未定义Undefined、空Null、布尔值Boolean、Symbol(ES6) 三种 引用类型 :对象Object、数组Array、函数Function 有几点需要注意的: ==和===: 使用==时,会自动转换符号两边的数据类型再进行比较,容易出错。使用===时,不会自动转换数据类型,所以也对数据类型进行了比较。 null和undefined: null表示没有这个值,而undefined表示应该有这个值但没有定义。 undefined == null //true undefined === null //false NaN和Infinite: NaN表示不是一个数值,它不与任何值相等,Infinite表示超出了Number类型能表示的最大范围 typeof和instanceof: typeof可以把数据类型作为字符串返回,但对于array、null和对象,typeof一律返回object。instanceof用于判断一个变量是否是某个对象的实例。 函数级作用域 在 JavaScript 中, 对象和函数同样也是变量,作用域为可访问变量,对象,函数的集合。 局部变量和局部作用域:   变量在函数内声明,为局部变量,局部作用域只能在函数内部访问。(函数参数只在函数内起作用,是局部变量)

原生JS+CSS实现日期插件

大城市里の小女人 提交于 2019-12-01 07:24:27
  笔者最近在学习Element UI,觉得它提供的日期选择器既简单又美观,于是仿照着写了一个日期插件。笔者使用到的技术有ES5、CSS和HTML,控件兼容IE10+和谷歌浏览器。有一点需要注意,笔者使用到iframe包裹弹出层,由于浏览器的同源安全策略,代码必须得放到tomcat的webapps文件夹下,以相对路径来访问,如 http://localhost:8080/datepicker/index.html 。代码已经开源到github,地址: https://github.com/tianxing2019/DatePicker ,效果图如下。 来源: https://www.cnblogs.com/whwtx/p/11668491.html

JS 实现继承的方法 ES6 and ES5

时间秒杀一切 提交于 2019-11-30 22:25:14
继承 ES6 方法 (类的继承) ES6中有一个属性的 extends 语法: ​ • class Father {} ​ • class Son extends Father{} ​ 注意:是子类继承父类 super关键字 我们应用的过程中会遇到父类子类都有的属性,此时,没必要再写一次,可以直接调用父类的方法就可以了 super关键字用于访问和调用对象父类上的函数。可以调用父类的构造函数,也可以调用父类的普通函数 当子类没有constructor的时候可以随意用父类的,但是如果子类也含有的话,constructor会返回实例,this的指向不同,不可以再直接使用父类的东西 调用父类构造函数 class F { constructor(name, age) {} } ​ class S extends F { constructor(name, age) { super(name, age); } } ​ //注意: 子类在构造函数中使用super, 必须放到this 前面(必须先调用父类的构造方法,在使用子类构造方法 调用父类普通函数 class F { constructor(name, age) {} say() {} } ​ class S extends F { constructor(name, age) { super(name, age); } say() {

实现斐波那契数列之es5、es6

若如初见. 提交于 2019-11-30 21:01:01
es5实现斐波拉契函数数列: <script type="text/javascript"> function fibonacci(n) { var one = 1;     var two = 1;     for(var i = 3; i <= n; i++) {    //此处代码重点部分,用three累加前两个数的和,也是斐波那契数列的精髓所在。 var three = one + two;       one = two;       two = three;       } if (n==1||n==2) {    //判断n==1或2的情况下返回undefined return one; } return three;       //最后返回three } console.log(fibonacci(2)); </script> es6实现斐波拉契函数数列: function* fibonacci() { let [prev, curr] = [0, 1]; for (;;) { yield curr; [prev, curr] = [curr, prev + curr]; } } for (let n of fibonacci()) { if (n > 1000) break; console.log(n); } 参考链接:https://www.cnblogs

ES5

隐身守侯 提交于 2019-11-30 05:03:59
什么是ES5:比普通js运行要求更加严格的模式 为什么:js语言本身有很多广受诟病的缺陷 如何:在当前作用域的顶部添加:"use strict" 要求: 1、禁止给未声明的变量赋值 2、静默失败升级为错误 静默失败:执行不成功,也不报错! 3、禁用了 arguments.calee arguments.callee:在调用时,获得当前正在执行函数名,因为递归的效率极低--重复计算量太大 解决:几乎所有的递归都可以用循环代替 4、普通函数调用和匿名函数自调中的this不再指向window,而是underfine 来源: https://my.oschina.net/u/4165441/blog/3108810

ES3、ES5、ES6对象代理的写法差异

懵懂的女人 提交于 2019-11-29 23:36:22
ES3的对象代理写法: console.log('定义私有变量ES3写法:') // ES3 var Person = function (){ var data = { name:'ES3', age:14, sex:'nv' } // 读API this.get = function(key){ return data[key] } // 写API this.set = function(key,value){ if(key !== 'sex'){ data[key] = value } } } // 声明一个实例 var person = new Person(); // 读取 console.table({name:person.get('name'),age:person.get('age'),sex:person.get('sex')}); // 修改 person.set('name','c-ES3') // 修改name为c-ES3 console.table({name:person.get('name'),age:person.get('age'),sex:person.get('sex')}); person.set('sex','nan') // 修改sex为nan 修改失败,因为被设置了保护 console.table({name:person.get(

ES5的一些常用方法

为君一笑 提交于 2019-11-29 16:30:58
ES5: 1.严格模式: 调用方法: "use strict" ; 作用范围:全局模式:放在脚本文件的第一行,则整个脚本文件都将以“严格模式”运行。 局部模式:将"use strict"放到函数内的第一行。 严格模式的语法要求: ① 必须用var声明变量 "use strict"; a = 10; console.log(a); //报错 ②函数内不允许出现重名参数 "use strict"; function fn(a,b,b){ console.log(a); console.log(b); } fn(2,3,4) //报错 ③this无法指向全局变量window "use strict"; function fn(){ console.log(this); } fn(); //undefined ④arguments对象不允许被动态改变 "use strict"; function fn(a,b){ a = 20; console.log(a); console.log(b); console.log(arguments); //2,3 } fn(2,3) 2.ES5新增数组常见方法: ①indexOf: 语法: arr.indexOf(item,start); 返回数组中某个元素的位置,没有找到指定元素返回-1. lastIndexOf():从后面往前找

打字游戏ES5面向对象的写法

天大地大妈咪最大 提交于 2019-11-29 08:28:59
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>打字游戏面向对象</title> <style type="text/css"> *{margin:0;padding:0;} html,body{width:100%;height:100%;} div{width:100%;height:100%;position:relative;} div span{ display:inline-block;width:20px;height:20px; text-align:center;line-height:20px;border:1px solid #ccc; position:absolute;top:0; } </style> <script type="text/javascript"> function PrintChar(){ this.body=document.getElementsByTagName("body")[0]; this

es5数组的api(了解)

一世执手 提交于 2019-11-29 08:28:55
一、基础 1.arr.indexOf(v); a.返回的是第一次出现的下标 b.两个参数。后面参数代表从那个下标开始查找 c.如果不存在,返回-1. eg: 数组的去重 分析: 建立一个临时数组,用indexOf(),让传递进来的数组中的每一个元素与临时数组中的每一个元素进行比较,如果tempArr.indexOf(arr[i]) 为-1,则push到临时数组中。 function norepeat(arr) { var tempArr = []; for (var i = 0; i < arr.length; i++) { if(tempArr.indexOf(arr[i]) == -1) { //用arr中的每一个元素与tempArr中的每一个元素进行比较,如果不相同,则放入临时的数组中。 tempArr.push(arr[i]); } }   return tempArr; } console.log(norepeat(arr)); 2.arr.lastIndexOf(v); a.从后往前找,返回的是倒着数的第一次出现的下标 b.接受两个参数,第二个参数,代表的是从哪个下标开始 eg: 检测数组中没有重复的数组项 分析: 让indexOf从前往后找,lastIndexOf 从后往前找,如果从前往后找和从后往前找,返回的下标相同,则说明没有重复的选项 for(var i=0;i

读书笔记:深入理解ES6 (三)

江枫思渺然 提交于 2019-11-29 01:40:22
第三章 函数 这一章主要介绍了在ES6规范中,对于函数这一块知识进行的一些修订和改进,主要目的就是让使用JavaScript编程可以更少出错,同时也更加灵活。 第1节. 函数形参的默认值   1.1 在ES5中,在 函数体内要对形参的值进行进一步的判断 ,如果不满足条件,则给其一个默认值。例如: function makeRequest(url, timeout, callback) { timeout = timeout || 2000; //other code }     而在ES6中,为了更加简化函数体的代码,给形参赋默认值的操作可以直接在写参数的时候加上,以此减少函数体内的代码量。例如: function makeRequest(url, timeout = 2000, callback) { //other code }             1.2 默认参数值对 arguments 对象的影响。     在ES5非严格模式下,函数命名参数的变化会体现在 arguments 对象中。即,参数值改变后,arguments 对象中原来存储的值会同时发生改变;而在ES5严格模式和ES6中,参数值改变后,arguments 对象中的值不会改变,仍旧是原来的值。 第2节 处理无命名参数   2.1 无命名参数 ,即没有显式声明的参数。在ES5中,可以使用 arguments