ES6之主要知识点(四)数值】的更多相关文章

引自:http://es6.ruanyifeng.com/#docs/number 1.Number.isFinite(),Number.isNaN() Number.isFinite(); // true Number.isFinite(NaN); // false Number.isFinite(Infinity); // false Number.isFinite('foo'); // false Number.isFinite(true); // false Number.isNaN(N…
一.问:ES6是什么,为什么要学习它,不学习ES6会怎么样? 答: ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发.学习ES6是成为专业前端正规军的必经之路.不学习ES6也可以写代码打鬼子,但是最多只能当个游击队长. 二.问:ES5.ES6和ES2015有什么区别? 答: ES2015特指在2015年发布的新一代JS语言标准,ES6泛指下一代JS语言标准,包含ES2015.ES2016.…
es6的一些知识点 前言:es6(ECMAscript2015)标准 let.const.var的一些区别 let.const 块级作用域.全局作用域.函数作用域 var 全局作用域.函数作用域 变量提升的问题: var : true let.const : false 例子: console.log(a);//undefind let a=1: 块级作用域:例如在一个函数,for循环...区块之内! const 常量,值不可更改. let.var 变量,值可以更改 严格模式 消除Javascr…
1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 // true 从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示. // 非严格模式 (function(){ console.log(0o11 === 011); })() // true // 严格模式 (function(){ 'use…
PS: 前段时间转入有道云笔记,体验非常友好,所以笔记一般记录于云笔记中,每隔一段时间,会整理一下, 发在博客上与大家一起分享,交流和学习. 以下:…
ECMAScript 6 是 JavaScript 语言的最新一代标准,当前标准已于 2015 年 6 月正式发布,故又称 ECMAScript 2015. ES6对数据类型进行了一些扩展 在js中使用ES6必须先声明 严格模式 "use strict" let变量 let特性: 1.不允许重复声明 2.没有预解析. 3.块级作用域 一对{}包括的区域称为代码块 块级作用域指一个变量或者函数只在该区域才起作用. 例: "use strict" for(let i=0…
es6字符串的扩展 1. es6新增的一些方法 1.1 includes 判断是否包括在内,返回一个 true or false 1.2 statsWith 判断是否以什么开头,返回一个 true or false 1.3 endWith 判断是否以什么结尾,返回一个 true or false 1.4 repeat 复制多少份, 如 'cz'.repeat(3) // 'czczcz' 1.5 padStart pad End 补全字符串长度,长用于 00000000001 console.l…
(一)字符串的扩展 1.字符串的遍历 for (let codePoint of 'foo') { console.log(codePoint) } // "f" // "o" // "o" 2.includes(), startsWith(), endsWith() 传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6 又提供了三种新方法,这三个方法都支持第二个参数,表示开始搜索的位置.…
越来越多的开源库开始使用ES2015来构建代码了,大家知道ES6=ES2015,ES6在2015年被ECMAScript标准化组织approve,各大浏览器厂商要完全支持ES6的强大功能还须一些时日,对于喜爱新尝试的同学难道只有干等吗?幸运的是有了babel,traceur等transpiler的帮助,我们根本不用等待浏览器原生支持ES6才开始使用新技术了!其实babel做的事情很简单,他就是把es6的代码转换成浏览器认识的ES5代码.简单举一个例子,比如ES6中引入的语言原生支持模块的关键字i…
ES6 在 Number对象上新增了很多方法 1 .    Number.isFinite()判断是否为有限的数字 和全局的isFinite() 方法的区别是 isFinite('1') === true    ;    Number.isFinite('1') === false 全局的isFinite()先调用Number() 方法  把  变量 转化为数字再进行判断, 所以返回 true, Number.isFinite()只能判断数字, 对于非数字一律返回false 2  ,  Numb…
1.Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [, , , , , , ].forEach(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化. // 例一 , , ,…
防止属性名的冲突.这就是 ES6 引入Symbol的原因. 它是 JavaScript 语言的第七种数据类型,前六种是:undefined.null.布尔值(Boolean).字符串(String).数值(Number).对象(Object). var s1 = Symbol('foo'); var s2 = Symbol('bar'); s1 // Symbol(foo) s2 // Symbol(bar) s1.toString() // "Symbol(foo)" s2.toSt…
1.属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. function f(x, y) { return {x, y}; } // 等同于 function f(x, y) { return {x: x, y: y}; } f(, ) // Object {x: 1, y: 2} var o = { method() { return "Hello!"; } }; // 等同于 var o = { method: function() { r…
1.数值 1.1 .JavaScript数值的特点 不区分整数值和浮点数值. 所有数值均用浮点数值表示. 采用IEEE-754标准定义的64位浮点数格式表示. 整数在实际操作时(如数组索引),则是基于32为整数. 1.2. 整数直接量 除十进制外,JavaScript能识别十六进制(以0x或0X为前缀).二进制(以0b或0B为前缀)和八进制(以0o或0O为前缀) 如: 0xff -----> 255, 0b1001 ----> 9, 0o12 -----> 10 在ES6的严格模式下,禁…
网络编程(socket) 软件开发的架构: 两个程序之间通讯的应用大致通过从用户层面可以分为两种: 1是C/S,即客户端与服务端,为应用类的,比如微信,网盘等需要安装桌面应用的 2是B/S,即浏览器与服务端,为web类的,不需要安装应用,直接在浏览器上使用:轻量级,成本比较低, 实际上,B/S 架构也是C/S架构的一种特殊的形式. 网络基础: 在同一台机器上要想使两个py程序通信,可以通过写文件,来传输. 但是在不同机器上的两个py程序之间想要通信,就必须依靠网络. ip地址与ip协议: 规定网…
一.变量 原有变量: var的缺点: 1.可以重复声明 2.无法限制修改 3.没有块级作用域 新增变量: let :不能重复声明,变量-可以修改,块级作用域 const:不能重复声明,变量-不可以修改,块级作用域 二.箭头函数 原函数: var func = function(args){ alert(“abc”): }: 现箭头函数: var func = (args)=> { alert(“abc”): }: 简写规则: ()——只有一个参数 { } ——只有一个return 所以上述函数还…
await 是 async wait 的简写, 是 generator 函数的语法糖. async 函数的特点: async 声明一个方法是异步的,await 则等待这个异步方法执行的完成 asyncReadFile = async function () { var f1 = await readFile('/etc/fstab') var f2 = await readFile('/etc/shells') console.log(f1.toString()) console.log(f2.…
ECMAScript6 ECMAScript简称就是ES,你可以把它看成是一套标准,JavaScript就是实施了这套标准的一门语言,现在主流浏览器使用的是ECMAScript5. http://babeljs.io/repl 1. 作用域变量 作用域就是一个变量的作用范围.也就是你声明一个变量以后,这个变量可以在什么场合下使用 以前的JavaScript只有全局作用域,还有一个函数作用域 1.1 var的问题 var没有块级作用域,定义后在当前闭包中都可以访问,如果变量名重复,就会覆盖前面定义…
一.参数带默认值函数1.在函数形参可以赋予函数默认值[即实参严格匹配undefined时,在函数内部使用形参时调用它的默认值]2.函数name属性 [返回函数名称,无名的函数返回空字符串]3.函数length属性  [从左往右开始计算函数形参直到碰到带有默认值形参时结束计算,这样计算的形参个数]eg: //普通函数传参 function test(a,b=2,c,d=3){ console.log(a,b,c,d); } test(3,4,5); //输出abcd分别为:3,4,5,3 cons…
Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程. Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制, 可以对外界的访问进行过滤和改写.Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”. ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例. var proxy = new Pro…
引自http://es6.ruanyifeng.com/#docs/array 1.扩展运算符(...) 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. 该运算符主要用于函数调用. function push(array, ...items) { array.push(...items); } function add(x, y) { return x + y; } , ]; add(...numbers) 替代数组的 appl…
函数参数的默认值 作用域 ; function f(x, y = x) { console.log(y); } f() let x = ; function f(y = x) { let x = ; console.log(y); } f() ; function foo(x, y = function() { x = ; }) { ; y(); console.log(x); } foo() x ; function foo(x, y = function() { x = ; }) { x =…
引自:http://es6.ruanyifeng.com/#docs/string#codePointAt codePointAt() String.fromCodePoint() at() includes(),startsWith(),endsWith() repeat() padStart(),padEnd() 模板字符串 模板编译 1.codePointAt() codePointAt方法的结果与charCodeAt方法相同. 总之,codePointAt方法会正确返回32位的UTF-1…
引自http://es6.ruanyifeng.com/#docs/destructuring 数组解构赋值 默认值 对象解构赋值 用途 1.数组的解构赋值 let [a, b, c] = [1, 2, 3]; let [foo, [[bar], baz]] = [1, [[2], 3]]; foo bar baz let [ , , third] = ["foo", "bar", "baz"]; third // "baz"…
引自:http://es6.ruanyifeng.com let 块级作用域 const 1.let let声明的变量只在它所在的代码块有效. for循环的计数器,就很合适使用let命令. var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); 注意: 1.没有变量的提升 2.不允许重复声明 2.块级作用域 ES5 只有全局作用域和函数作用域,es6增加了块级作用域,…
#pragma mark - 性能优化 1. 行高一定要缓存 缓存行高是解决性能优化的最佳途径(除非刷新频率已经很高了,否则一定要缓存)2. 尽量减少计算,所有需要素材提前计算好3. 控件不要设置圆角半径,图片的拉伸要用代码去处理,减少CPU和GPU的消耗4. 不要动态创建控件,需要展示的控件,都要提前创建好,在展示的时候根据数据隐藏或显示5. cell中的层次越少越好,数量越少越好(实现更好理解的前提下尽可能少)6. 高级优化 离屏渲染 self.layer.drawsAsynchronous…
一.scrapy结构数据 解释: 1.名词解析: o 引擎(Scrapy Engine)o 调度器(Scheduler)o 下载器(Downloader)o 蜘蛛(Spiders)o 项目管道(Item Pipeline)o 下载器中间件(Downloader Middlewares)o 蜘蛛中间件(Spider Middlewares)o 调度中间件(Scheduler Middlewares) 2.具体解析 绿线是数据流向 从初始URL开始,Scheduler会将其交给Do…
Promise Promise三种状态 pending.resolved.rejected 使用语法 var promis = new Promise(function(resolve,reject){ $.ajax({ url:'/api/something.json', method:'get', datatype:'json', success:(res) =>{ resolve(res) }, error:(err)=>{ reject(err) } }) }) promis.then…
promise 用于js的异步处理 形式: 1.申明一个promise的对象 let p = new Promise(function(成功时的参数,失败时的参数){ if(....){ 成功时的参数(成功时想传的值); }else{ 失败时的参数(失败时想传的值); } }); 调用then方法 p.then( //第一个为成功时调用的回调函数 (成功时想传的值)=>(...), /第二个为失败时调用的回调函数(失败时想传的值)=>(...), ); eg: let a=1; let p =…
C++面向对象中,虚函数与虚继承是两个完全不同的概念. 一.虚函数 C++程序中只要类中含有虚拟函数,编译程序都会为此类生成一个对应的虚拟函数跳转表(vtbl),该虚拟函数跳转表是一个又若干个虚拟函数体入口地址组成的一个线性表.派生类的虚拟函数跳转表的前半部分由父类的vtbl得出,但是里面的内容不一定相同,后半部分则对应着自己新定义的虚拟函数. class Employee { protected: char *Name; int Age; public: void changeAge(int…