ES6面试、复习干货知识点汇总(全)

 

 

近期在复习ES6,针对ES6新的知识点,以问答形式整理一个全面知识和问题汇总。(全干货,适合对ES6有一定理解的同学复习,以及ES6面试。)

一、问:ES6是什么,为什么要学习它,不学习ES6会怎么样?

答: ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发。学习ES6是成为专业前端正规军的必经之路。不学习ES6也可以写代码打鬼子,但是最多只能当个游击队长。

二、问:ES5、ES6和ES2015有什么区别?

答: ES2015特指在2015年发布的新一代JS语言标准,ES6泛指下一代JS语言标准,包含ES2015、ES2016、ES2017、ES2018等。现阶段在绝大部分场景下,ES2015默认等同ES6。ES5泛指上一代语言标准。ES2015可以理解为ES5和ES6的时间分界线。

三、问:babel是什么,有什么作用?

答:babel是一个 ES6 转码器,可以将 ES6 代码转为 ES5 代码,以便兼容那些还没支持ES6的平台。

四、问:let有什么用,有了var为什么还要用let?

答: 在ES6之前,声明变量只能用var,var方式声明变量其实是很不合理的,准确的说,是因为ES5里面没有块级作用域是很不合理的,甚至可以说是一个语言层面的bug(这也是很多c++、java开发人员看不懂,也瞧不起JS语言的劣势之一)。没有块级作用域回来带很多难以理解的问题,比如for循环var变量泄露,变量覆盖等问题。let 声明的变量拥有自己的块级作用域,且修复了var声明变量带来的变量提升问题

五、问:举一些ES6对String字符串类型做的常用升级优化?

答:

1、优化部分:

ES6新增了字符串模板,在拼接大段字符串时,用反斜杠(`)取代以往的字符串相加的形式,能保留所有空格和换行,使得字符串拼接看起来更加直观,更加优雅。

2、升级部分:

ES6在String原型上新增了includes()方法,用于取代传统的只能用indexOf查找包含字符的方法(indexOf返回-1表示没查到不如includes方法返回false更明确,语义更清晰), 此外还新增了startsWith(), endsWith(), padStart(),padEnd(),repeat()等方法,可方便的用于查找,补全字符串。

六、问:举一些ES6对Array数组类型做的常用升级优化?

答:

1、优化部分:

a. 数组解构赋值。ES6可以直接以let [a,b,c] = [1,2,3]形式进行变量赋值,在声明较多变量时,不用再写很多let(var),且映射关系清晰,且支持赋默认值。

b. 扩展运算符。ES6新增的扩展运算符(...)(重要),可以轻松的实现数组和松散序列的相互转化,可以取代arguments对象和apply方法,轻松获取未知参数个数情况下的参数集合。(尤其是在ES5中,arguments并不是一个真正的数组,而是一个类数组的对象,但是扩展运算符的逆运算却可以返回一个真正的数组)。扩展运算符还可以轻松方便的实现数组的复制和解构赋值(let a = [2,3,4]; let b = [...a])。

2、升级部分:

ES6在Array原型上新增了find()方法,用于取代传统的只能用indexOf查找包含数组项目的方法,且修复了indexOf查找不到NaN的bug([NaN].indexOf(NaN) === -1).此外还新增了copyWithin(), includes(), fill(),flat()等方法,可方便的用于字符串的查找,补全,转换等。

七、问:举一些ES6对Number数字类型做的常用升级优化?

答:

1、优化部分:

ES6在Number原型上新增了isFinite(), isNaN()方法,用来取代传统的全局isFinite(), isNaN()方法检测数值是否有限、是否是NaN。ES5的isFinite(), isNaN()方法都会先将非数值类型的参数转化为Number类型再做判断,这其实是不合理的,最造成isNaN('NaN') === true的奇怪行为--'NaN'是一个字符串,但是isNaN却说这就是NaN。而Number.isFinite()和Number.isNaN()则不会有此类问题(Number.isNaN('NaN') === false)。(isFinite()同上)

2、升级部分:

ES6在Math对象上新增了Math.cbrt(),trunc(),hypot()等等较多的科学计数法运算方法,可以更加全面的进行立方根、求和立方根等等科学计算。

八、问:举一些ES6对Object类型做的常用升级优化?(重要)

答:

1、优化部分:

a. 对象属性变量式声明。ES6可以直接以变量形式声明对象属性或者方法,。比传统的键值对形式声明更加简洁,更加方便,语义更加清晰。

 
  1. let [apple, orange] = ['red appe', 'yellow orange'];

  2. let myFruits = {apple, orange}; // let myFruits = {apple: 'red appe', orange: 'yellow orange'};

  3. 复制代码

尤其在对象解构赋值(见优化部分b.)或者模块输出变量时,这种写法的好处体现的最为明显:

 
  1. let {keys, values, entries} = Object;

  2. let MyOwnMethods = {keys, values, entries}; // let MyOwnMethods = {keys: keys, values: values, entries: entries}

  3. 复制代码

可以看到属性变量式声明属性看起来更加简洁明了。方法也可以采用简洁写法:

 
  1. let es5Fun = {

  2. method: function(){}

  3. };

  4. let es6Fun = {

  5. method(){}

  6. }

  7. 复制代码

b. 对象的解构赋值。 ES6对象也可以像数组解构赋值那样,进行变量的解构赋值:

 
  1. let {apple, orange} = {apple: 'red appe', orange: 'yellow orange'};

  2. 复制代码

c. 对象的扩展运算符(...)。 ES6对象的扩展运算符和数组扩展运算符用法本质上差别不大,毕竟数组也就是特殊的对象。对象的扩展运算符一个最最常用也最好用的用处就在于可以轻松的取出一个目标对象内部全部或者部分的可遍历属性,从而进行对象的合并和分解。

 
  1. let {apple, orange, ...otherFruits} = {apple: 'red apple', orange: 'yellow orange', grape: 'purple grape', peach: 'sweet peach'};

  2. // otherFruits {grape: 'purple grape', peach: 'sweet peach'}

  3. // 注意: 对象的扩展运算符用在解构赋值时,扩展运算符只能用在最有一个参数(otherFruits后面不能再跟其他参数)

  4. let moreFruits = {watermelon: 'nice watermelon'};

  5. let allFruits = {apple, orange, ...otherFruits, ...moreFruits};

  6. 复制代码

d. super 关键字。ES6在Class类里新增了类似this的关键字super。同this总是指向当前函数所在的对象不同,super关键字总是指向当前函数所在对象的原型对象。

2、升级部分:

a. ES6在Object原型上新增了is()方法,做两个目标对象的相等比较,用来完善'==='方法。'==='方法中NaN === NaN //false其实是不合理的,Object.is修复了这个小bug。(Object.is(NaN, NaN) // true)

b. ES6在Object原型上新增了assign()方法,用于对象新增属性或者多个对象合并。

 
  1. const target = { a: 1 };

  2. const source1 = { b: 2 };

  3. const source2 = { c: 3 };

  4. Object.assign(target, source1, source2);

  5. target // {a:1, b:2, c:3}

  6. 复制代码

注意: assign合并的对象target只能合并source1、source2中的自身属性,并不会合并source1、source2中的继承属性,也不会合并不可枚举的属性,且无法正确复制get和set属性(会直接执行get/set函数,取return的值)。

c. ES6在Object原型上新增了getOwnPropertyDescriptors()方法,此方法增强了ES5中getOwnPropertyDescriptor()方法,可以获取指定对象所有自身属性的描述对象。结合defineProperties()方法,可以完美复制对象,包括复制get和set属性。

d. ES6在Object原型上新增了getPrototypeOf()和setPrototypeOf()方法,用来获取或设置当前对象的prototype对象。这个方法存在的意义在于,ES5中获取设置prototype对像是通过__proto__属性来实现的,然而__proto__属性并不是ES规范中的明文规定的属性,只是浏览器各大产商“私自”加上去的属性,只不过因为适用范围广而被默认使用了,再非浏览器环境中并不一定就可以使用,所以为了稳妥起见,获取或设置当前对象的prototype对象时,都应该采用ES6新增的标准用法。

d. ES6在Object原型上还新增了Object.keys(),Object.values(),Object.entries()方法,用来获取对象的所有键、所有值和所有键值对数组。

九、问:举一些ES6对Function函数类型做的常用升级优化?(重要)

答:

1、优化部分:

a. 箭头函数(核心)。箭头函数是ES6核心的升级项之一,箭头函数里没有自己的this,这改变了以往JS函数中最让人难以理解的this运行机制。主要优化点:

Ⅰ.    箭头函数内的this指向的是函数定义时所在的对象,而不是函数执行时所在的对象。ES5函数里的this总是指向函数执行时所在的对象,这使得在很多情况下this的指向变得很难理解,尤其是非严格模式情况下,this有时候会指向全局对象,这甚至也可以归结为语言层面的bug之一。ES6的箭头函数优化了这一点,它的内部没有自己的this,这也就导致了this总是指向上一层的this,如果上一层还是箭头函数,则继续向上指,直到指向到有自己this的函数为止,并作为自己的this。

Ⅱ.    箭头函数不能用作构造函数,因为它没有自己的this,无法实例化。

Ⅲ.   也是因为箭头函数没有自己的this,所以箭头函数 内也不存在arguments对象。(可以用扩展运算符代替)

b. 函数默认赋值。ES6之前,函数的形参是无法给默认值得,只能在函数内部通过变通方法实现。ES6以更简洁更明确的方式进行函数默认赋值。

 
  1. function es6Fuc (x, y = 'default') {

  2. console.log(x, y);

  3. }

  4. es6Fuc(4) // 4, default

  5. 复制代码

2、升级部分:

ES6新增了双冒号运算符,用来取代以往的bind,call,和apply。

 
  1. foo::bar;

  2. // 等同于

  3. bar.bind(foo);

  4.  
  5. foo::bar(...arguments);

  6. // 等同于

  7. bar.apply(foo, arguments);

  8. 复制代码

十、问:Symbol是什么,有什么作用?

答: Symbol是ES6引入的第七种原始数据类型,所有Symbol()生成的值都是独一无二的,可以从根本上解决对象属性太多导致属性名冲突覆盖的问题。对象中Symbol()属性不能被for...in遍历,但是也不是私有属性。

十一、问:Set是什么,有什么作用?

答: Set是ES6引入的一种类似Array的新的数据结构,Set实例的成员类似于数组item成员,区别是Set实例的成员都是唯一,不重复的。这个特性可以轻松地实现数组去重。

十二、问:Map是什么,有什么作用?

答: Map是ES6引入的一种类似Object的新的数据结构,Map可以理解为是Object的超集,打破了以传统键值对形式定义对象,对象的key不再局限于字符串,也可以是Object。可以更加全面的描述对象的属性。

十三、问:Proxy是什么,有什么作用?

答: Proxy是ES6新增的一个构造函数,可以理解为JS语言的一个代理,用来改变JS默认的一些语言行为,包括拦截默认的get/set等底层方法,使得JS的使用自由度更高,可以最大限度的满足开发者的需求。比如通过拦截对象的get/set方法,可以轻松地定制自己想要的key或者value。下面的例子可以看到,随便定义一个myOwnObj的key,都可以变成自己想要的函数。

 
  1. function createMyOwnObj() {

  2. //想把所有的key都变成函数,或者Promise,或者anything

  3. return new Proxy({}, {

  4. get(target, propKey, receiver) {

  5. return new Promise((resolve, reject) => {

  6. setTimeout(() => {

  7. let randomBoolean = Math.random() > 0.5;

  8. let Message;

  9. if (randomBoolean) {

  10. Message = `你的${propKey}运气不错,成功了`;

  11. resolve(Message);

  12. } else {

  13. Message = `你的${propKey}运气不行,失败了`;

  14. reject(Message);

  15. }

  16. }, 1000);

  17. });

  18. }

  19. });

  20. }

  21.  
  22. let myOwnObj = createMyOwnObj();

  23.  
  24. myOwnObj.hahaha.then(result => {

  25. console.log(result) //你的hahaha运气不错,成功了

  26. }).catch(error => {

  27. console.log(error) //你的hahaha运气不行,失败了

  28. })

  29.  
  30. myOwnObj.wuwuwu.then(result => {

  31. console.log(result) //你的wuwuwu运气不错,成功了

  32. }).catch(error => {

  33. console.log(error) //你的wuwuwu运气不行,失败了

  34. })

  35. 复制代码

十四、问:Reflect是什么,有什么作用?

答: Reflect是ES6引入的一个新的对象,他的主要作用有两点,一是将原生的一些零散分布在Object、Function或者全局函数里的方法(如apply、delete、get、set等等),统一整合到Reflect上,这样可以更加方便更加统一的管理一些原生API。其次就是因为Proxy可以改写默认的原生API,如果一旦原生API别改写可能就找不到了,所以Reflect也可以起到备份原生API的作用,使得即使原生API被改写了之后,也可以在被改写之后的API用上默认的API。

十五、问:Promise是什么,有什么作用?

答: Promise是ES6引入的一个新的对象,他的主要作用是用来解决JS异步机制里,回调机制产生的“回调地狱”。它并不是什么突破性的API,只是封装了异步回调形式,使得异步回调可以写的更加优雅,可读性更高,而且可以链式调用。

十六、问:Iterator是什么,有什么作用?(重要)

答: Iterator是ES6中一个很重要概念,它并不是对象,也不是任何一种数据类型。因为ES6新增了Set、Map类型,他们和Array、Object类型很像,Array、Object都是可以遍历的,但是Set、Map都不能用for循环遍历,解决这个问题有两种方案,一种是为Set、Map单独新增一个用来遍历的API,另一种是为Set、Map、Array、Object新增一个统一的遍历API,显然,第二种更好,ES6也就顺其自然的需要一种设计标准,来统一所有可遍历类型的遍历方式。Iterator正是这样一种标准。或者说是一种规范理念。

就好像JavaScript是ECMAScript标准的一种具体实现一样,Iterator标准的具体实现是Iterator遍历器。Iterator标准规定,所有部署了key值为[Symbol.iterator],且[Symbol.iterator]的value是标准的Iterator接口函数(标准的Iterator接口函数: 该函数必须返回一个对象,且对象中包含next方法,且执行next()能返回包含value/done属性的Iterator对象)的对象,都称之为可遍历对象,next()后返回的Iterator对象也就是Iterator遍历器。

 
  1. //obj就是可遍历的,因为它遵循了Iterator标准,且包含[Symbol.iterator]方法,方法函数也符合标准的Iterator接口规范。

  2. //obj.[Symbol.iterator]() 就是Iterator遍历器

  3. let obj = {

  4. data: [ 'hello', 'world' ],

  5. [Symbol.iterator]() {

  6. const self = this;

  7. let index = 0;

  8. return {

  9. next() {

  10. if (index < self.data.length) {

  11. return {

  12. value: self.data[index++],

  13. done: false

  14. };

  15. } else {

  16. return { value: undefined, done: true };

  17. }

  18. }

  19. };

  20. }

  21. };

  22. 复制代码

ES6给Set、Map、Array、String都加上了[Symbol.iterator]方法,且[Symbol.iterator]方法函数也符合标准的Iterator接口规范,所以Set、Map、Array、String默认都是可以遍历的。

 
  1. //Array

  2. let array = ['red', 'green', 'blue'];

  3. array[Symbol.iterator]() //Iterator遍历器

  4. array[Symbol.iterator]().next() //{value: "red", done: false}

  5.  
  6. //String

  7. let string = '1122334455';

  8. string[Symbol.iterator]() //Iterator遍历器

  9. string[Symbol.iterator]().next() //{value: "1", done: false}

  10.  
  11. //set

  12. let set = new Set(['red', 'green', 'blue']);

  13. set[Symbol.iterator]() //Iterator遍历器

  14. set[Symbol.iterator]().next() //{value: "red", done: false}

  15.  
  16. //Map

  17. let map = new Map();

  18. let obj= {map: 'map'};

  19. map.set(obj, 'mapValue');

  20. map[Symbol.iterator]().next() {value: Array(2), done: false}

  21. 复制代码

十七、问:for...in 和for...of有什么区别?

答: 如果看到问题十六,那么就很好回答。问题十六提到了ES6统一了遍历标准,制定了可遍历对象,那么用什么方法去遍历呢?答案就是用for...of。ES6规定,有所部署了载了Iterator接口的对象(可遍历对象)都可以通过for...of去遍历,而for..in仅仅可以遍历对象。

这也就意味着,数组也可以用for...of遍历,这极大地方便了数组的取值,且避免了很多程序用for..in去遍历数组的恶习。

上面提到的扩展运算符本质上也就是for..of循环的一种实现。

十八、Generator函数是什么,有什么作用?

答: 如果说JavaScript是ECMAScript标准的一种具体实现、Iterator遍历器是Iterator的具体实现,那么Generator函数可以说是Iterator接口的具体实现方式。

执行Generator函数会返回一个遍历器对象,每一次Generator函数里面的yield都相当一次遍历器对象的next()方法,并且可以通过next(value)方法传入自定义的value,来改变Generator函数的行为。

Generator函数可以通过配合Thunk 函数更轻松更优雅的实现异步编程和控制流管理。

十九、async函数是什么,有什么作用?

答: async函数可以理解为内置自动执行器的Generator函数语法糖,它配合ES6的Promise近乎完美的实现了异步编程解决方案。

二十、Class、extends是什么,有什么作用?

答: ES6 的class可以看作只是一个ES5生成实例对象的构造函数的语法糖。它参考了java语言,定义了一个类的概念,让对象原型写法更加清晰,对象实例化更像是一种面向对象编程。Class类可以通过extends实现继承。它和ES5构造函数的不同点:

a. 类的内部定义的所有方法,都是不可枚举的。

 
  1. ///ES5

  2. function ES5Fun (x, y) {

  3. this.x = x;

  4. this.y = y;

  5. }

  6. ES5Fun.prototype.toString = function () {

  7. return '(' + this.x + ', ' + this.y + ')';

  8. }

  9. var p = new ES5Fun(1, 3);

  10. p.toString();

  11. Object.keys(ES5Fun.prototype); //['toString']

  12.  
  13. //ES6

  14. class ES6Fun {

  15. constructor (x, y) {

  16. this.x = x;

  17. this.y = y;

  18. }

  19. toString () {

  20. return '(' + this.x + ', ' + this.y + ')';

  21. }

  22. }

  23.  
  24. Object.keys(ES6Fun.prototype); //[]

  25. 复制代码

b.ES6的class类必须用new命令操作,而ES5的构造函数不用new也可以执行。

c.ES6的class类不存在变量提升,必须先定义class之后才能实例化,不像ES5中可以将构造函数写在实例化之后。

d.ES5 的继承,实质是先创造子类的实例对象this,然后再将父类的方法添加到this上面。ES6 的继承机制完全不同,实质是先将父类实例对象的属性和方法,加到this上面(所以必须先调用super方法),然后再用子类的构造函数修改this。

二十一、module、export、import是什么,有什么作用?

答: module、export、import是ES6用来统一前端模块化方案的设计思路和实现方案。export、import的出现统一了前端模块化的实现方案,整合规范了浏览器/服务端的模块化方法,用来取代传统的AMD/CMD、requireJS、seaJS、commondJS等等一系列前端模块不同的实现方案,使前端模块化更加统一规范,JS也能更加能实现大型的应用程序开发。

import引入的模块是静态加载(编译阶段加载)而不是动态加载(运行时加载)。

import引入export导出的接口值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。

二十二、日常前端代码开发中,有哪些值得用ES6去改进的编程优化或者规范?

答:

1、常用箭头函数来取代var self = this;的做法。

2、常用let取代var命令。

3、常用数组/对象的结构赋值来命名变量,结构更清晰,语义更明确,可读性更好。

4、在长字符串多变量组合场合,用模板字符串来取代字符串累加,能取得更好地效果和阅读体验。

5、用Class类取代传统的构造函数,来生成实例化对象。

6、在大型应用开发中,要保持module模块化开发思维,分清模块之间的关系,常用import、export方法。


作者:StevenLikeWatermelon
链接:https://juejin.im/post/5c061ed2f265da61357258ee
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

展开阅读全文 

 

ES6入门一(常见的面试点)

阅读数 4281

1、变量在ES6之前,变量声明关键字:varvar的缺点:    (1)var可以多次声明同一个变量--在其他编程语言是没办法想象的vara=0;vara=99;    (2)var会造成变量提升(f...博文来自: barret007的博客

前端常见面试题总结——ES6部分(三)

阅读数 6900

1.es6熟悉吗,说几个es6的新增方法(1)新增声明命令let和const在es6中通常用 let 和 const 来声明,let 表示变量、const 表示常量。特点:let 和 const 都是...博文来自: sinat_36174237的博客

JS面试题总结(含ES6)

阅读数 5704

部分内容来源于网络 主要内容包括:数据类型,变量和常量,数组和常用方法,本地存储,关于异步处理:Generator  async  promise 的区别,关于ES6兼容与优化 数据类型1,介绍js的...博文来自: cmy0816的博客

es6+常见面试

阅读数 2192

1.es6新特性,哪些在项目中使用举例说明letconst解构箭头函数Set去重新增数据类型Symbol模板字符串``类怎么实现继承模块化promiseasync/await2.varletconst...博文来自: 脑瓜疼儿的博客

 

面试题 --纯ES6

阅读数 1万+

1.rem的理解:(关于页面的适配--手写)https://mp.weixin.qq.com/s/-22kMEXf0S-1okqXw40OqQrem的62%是个什么意思16px=1rem1px=62....博文来自: jasonjkj的博客

关于JavaScript面试题(ES6)

阅读数 1万+

JavaScript中基本数据类型与引用数据类型JavaScript中共有6种基本数据类型:Undefined、Null、Boolean、Number、String、Symbol(newinES6)!...博文来自: u011135887的博客

ES6常用知识点

阅读数 49

1.变量声明let和const2.模板字符串3.函数4.拓展的对象功能5.更方便的数据访问--解构6.SpreadOperator展开运算符7.import和export8.Promise9.Gene...博文来自: ferrysoul的博客

ES6必须知道的知识点--思维导图

阅读数 649

学习过程中每个人有每个人不同的习惯,我喜欢学完一个知识点再用脑图整理出知识点。这样回顾就有思路。看的顺序是从右上角开始顺时针下面的图片是ES6要掌握的知识点,如果是要从事Vue、React这些都掌握了...博文来自: Ultraman_and_monster的博客

ES6知识点归纳

阅读数 4262

ES6知识点归纳目录博客导航ES6之let、const、var区别ES6之(…)用法ES6之字符串模板ES6之变量的解构赋值...博文来自: Dream_Lee的博客

ES6知识点+案例)全套视频教程[项目实战]

全面掌握ES6引入的新特性,为以后的框架奠定基础,比如vue中会大量使用es6的语法,希望大家学习es6中的语法在以后的开发过程中能提高效率学院讲师: 张鹏

学习ES6-什么是ES6?为什么要学习ES6

阅读数 1万+

这篇文章主要解释一下标题的问题,很多不了解ES6的人都有这样的疑问。什么TM的是ES6?什么是ES6呢,简单通俗的说就是netscape(网景)公司创造了javascript这个脚本语言,主要是用来做...博文来自: 谁说学美术将来只能卖画了,我也有自己的梦想。

前端面试之ES5与ES6的区别

阅读数 828

  首先我们来看一下ES是什么?全称为ECMAScript,是JavaScript语言的核心,它规定了js的组成部分:语法、类型、语句、关键字、保留字、操作符、对象。下面直奔两者不同:1.系统库的引用...博文来自: 杜小白的博客

GitChat技术杂谈关注

GitChat技术杂谈

 

570篇文章

排名:517

 

_acme_关注

_acme_

 

233篇文章

排名:5000+

 

SnailClimb在csdn关注

SnailClimb在csdn

 

203篇文章

排名:5000+

 

moxiaomomo关注

moxiaomomo

 

446篇文章

排名:583

 

很全面的vue面试汇总

阅读数 198

VUE面试题v-show与v-if区别 动态绑定class的方法 计算属性和watch的区别 怎样理解单向数据流 keep-alive 自定义组件的语法糖v-model是怎样实现的 生命周期 组件通信...博文来自: 大灰狼的小绵羊哥哥的博客

完美Python入门基础知识点总结

阅读数 406

 Python标识符在Python里,标识符有字母、数字、下划线组成。在Python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。Python中的标识符是区分大小写的。以下划线开...博文来自: sxyyu1的博客

php基础知识点面试常考)

阅读数 824

超全局变量$_SERVER['SERVER_ADDR']服务器IP地址$_SERVER['QUERY_STRING']?后面的一大串$_SERVER['REMOTE_ADDR']客户端IP地址 $_S...博文来自: qq_36346877的博客

 

JavaSE复习总结(一)

阅读数 2712

JavaSE复习总结(一)基础常识1.JVM,JRE,JDKJRE=JVM+相关类库JDK=JRE+工具 2.下载安装jdk,设置path环境变量3.第一个java程序HelloWorld1)创建.j...博文来自: wangligong的博客

2018年最新JAVA面试知识点大纲整理

阅读数 1701

跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规划的轨迹...博文来自: 总有些事,值得你去努力

机器学习面试常用算法知识点梳理总结

阅读数 2989

原文地址:http://www.cnblogs.com/tornadomeet/p/3395593.html   前言:  找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选...博文来自: u012656566的博客

前端面试——ES6

阅读数 1181

https://blog.csdn.net/WJ930708/article/details/79904277https://blog.csdn.net/u011135887/article/deta...博文来自: qq_21428081的博客

es6箭头函数的理解及面试

阅读数 809

箭头函数的介绍箭头函数是es6当中对函数的一种全新表示法。其将函数的简洁性发扬到了极致!先来看一个最简单的箭头函数:letfn=v=&amp;gt;v;console.log(fn(&quot;好酷的...博文来自: 张培跃的个人博客

 

ES6入门二(常见的面试点)

阅读数 1596

项目中对应的代码github的地址:https://github.com/Barretem/ES6_demo_list5、面向对象es5类以及类的继承//父类functionUser(name,age...博文来自: barret007的博客

面试ES6

阅读数 965

面试的过程中提到了symbol,很悲剧我答得超级差,所以晚上回来整理下,遇到不会的就要立刻补救!以后关于ES6的我也都整理在此~Symbol1.symbol独一无二,用于避免命名冲突,所以我们可以用于...博文来自: weixin_40322503的博客

50道JS面试

阅读数 4万+

1. javascript的typeof返回哪些数据类型.答案:string,boolean,number,undefined,function,object2. 例举3种强制类型转换和2种隐式类型转...博文来自: 曲小强

2018最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)

阅读数 14万+

近期总结一一些面试题都是企业的面试题笔记题感觉薪资10k下的都会出笔试题特别高的薪资都是直接技术面试或者是现场编程总结很多人的面试题,后期会对于单个知识点再说笔记详细讲解。部分都是百度的答案,不是特全...博文来自: xm1037782843的博客

MVC和MVVM模式的区别

阅读数 4272

1,MVC(Model-View-Controller)M-Model:数据保存V-View:用户界面C-Controller:业务逻辑MVC,用户操作&amp;gt;View(负责接受用户的输入操作...博文来自: xm1037782843的博客

 

React 基础知识点复习

阅读数 879

react难点:组件怎么拆分?单一原则,只干一件事,功能简单,不复用不拆,考虑迭代数据放在哪里?【数据】props:数据传递state:私有状态(用户输入、默认属性)数据尽量给顶层组件为什么用setS...博文来自: weixin_40821790的博客

python基础知识点总结

阅读数 715

一、对迭代器进行切片#!/usr/bin/envpython#-*-coding:utf-8-*-fromitertoolsimportislice#islice(iterable,[start,]s...博文来自: ******* ▄︻┻┳═一 *******

机器学习面试干货精讲

阅读数 2094

本文来自作者 de,light 在 GitChat 上分享「机器学习面试干货精讲」,「阅读原文」查看交流实录。「文末高能」编辑|哈比序言本文尽可能的不涉及到繁杂的数学公式,把面试中常问的模型核心点,用...博文来自: GitChat技术杂谈

数据结构面试知识点整理

阅读数 1015

暂无博文来自: u012540345的博客

C/C++面试知识点总结(一)

阅读数 3010

目录:一、基础知识    1.C/C++基础    2.STL基础    3.数据结构与算法基础    4.计算机网络基础    5.操作系统基础    6.数据库基础二、深入底层原理    1.ST...博文来自: _ACME_的博客

 

ES6常用特性入门,面试必备,持更......

阅读数 924

下面我将会慢慢的介绍一些常用的ES6语法特性,这其中有很大一部分引用于阮一峰老师的《ECMAScript6入门》,算是自己对这本书的一个笔记吧。1、let和const命令ES5只有两种声明变量的方法:...博文来自: low神

前端面试纪实(三):ES6的const和let

阅读数 867

1前言由于我在简历中写我了解es6,所以杭州有赞的面试官问了我很多es6的问题es6是JS的国际标准化组织在15年推出的新版本JSes6的详细介绍可以看阮一峰老师的开源书籍:http://es6.ru...博文来自: 阿超的博客

面试总结(1):es6相关

阅读数 293

es6新特性letconstclass,extends,superES6的继承机制,实质是先创造父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。constr...博文来自: 小仙女儿的魔仙堡

es6 let想到的块级作用域问题-面试

阅读数 2993

面试题情景:vara=[];for(vari=0;i博文来自: xiaoyu的博客

ES6之Promise常见面试

阅读数 3631

Promise想必大家都十分熟悉,想想就那么几个api,可是你真的了解Promise吗?本文根据Promise的一些知识点总结了十道题,看看你能做对几道。以下promise均指代Promise实例,环...博文来自: 眼里长着太阳,笑里全是坦荡

 

14张python最全面试考点与知识点总结思维导图

阅读数 1547

Python爬虫人工智能教程:www.python88.cn编程资源网:www.python66.cn相关资料和一些python教程都传到Python社区网站:www.python88.cn有兴趣的同...博文来自: QQ_2296622142的博客

数据结构知识点汇总

阅读数 9930

1、用链表表示线性表的优点是(便于插入和删除操作)2、单链表中,增加头结点的目的是(方便运算的实现)3、栈和队列的共同特点是(只允许在端点处插入和删除元素)4、栈通常采用的两种存储结构是(线性存储结构...博文来自: Bebr的博客

面试复习—操作系统知识点

阅读数 3204

(1)博文来自: 咸鱼就是要多学习

面试复习之数据结构

阅读数 726

第一章绪论1.1框架数据结构:基本概念(数据、元素、对象和ADT)逻辑结构(集合、线性、树形和图形)存储结构(顺序、链式、索引和散列)算法:基本概念:算法、特性和评价算法分析:时间和空间复杂度1.2大...博文来自: algzjh的博客

c语言面试知识点汇总(1)

阅读数 557

整型和长整型的区别在早期的计算机,16编译器,整型是16位,长整型是32位的。如今,在C99规定整型和长整型都是32位。  2.编译系统的四个步骤:预处理,编译,汇编,链接  3.For(;;)和wh...博文来自: qq_38365242的博客

ES6高频面试题目整理

阅读数 1833

前言自从ES6发布以来,就受到了广大开发者的欢迎。它的新特性解决了很多实际开发中的痛点,并且使得JavaScript逐步成为一门能够开发大型企业应用的编程语言,基于这种技术环境下,很多公司都将ES6视...博文来自: AGGirl的专栏

ES6复习

阅读数 20

ES6复习1.变量声明新增let和const,let声明变量,const声明常量let和const都不能重复声明let和const都不存在变量提升let和const都是块级作用域,而不是var的函数作...博文来自: weixin_34114823的博客

es6面试考点

阅读数 47

参考网站:https://blog.csdn.net/jasonjkj/article/details/80789360class及class的继承,prototype.与__proto__的概念,m...博文来自: juse__we的博客

ES6简单入门--面试

阅读数 154

var可以多次声明同一个变量--在其他编程语言是没办法想象的vara=0;vara=99;(2)var会造成变量提升(functionrr(){if(true){vara=666;}console.l...博文来自: xm1037782843的博客

es6面试

阅读数 389

1.es6新特性2.简单描述下promise博文来自: u012967454的博客

ES6面试复习干货知识点汇总(全) - 大灰狼的小绵羊哥..._CSDN博客

5-11

 

ES6常用知识点总结 - 大灰狼的小绵羊哥哥的博客 - CSDN博客

4-22

ES6常用知识点总结2019年04月15日 09:30:17 大灰狼的小绵羊哥哥 阅读数:520...做了一下总结,将一些觉得对自己目前有用的东西整理出来方便日后再来巩固复习。...

C/C++常见面试知识点总结附面试真题----20190407更新

阅读数 1721

以下内容部分整理自网络,部分为自己面试的真题。第一部分:计算机基础1.C/C++内存有哪几种类型?C中,内存分为5个区:堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全...博文来自: 生命在于折腾!

C++复习大全(各种知识点

阅读数 3065

前言这篇博客是我之前的一个礼拜复习总结的各种知识点,可能有些多,其中的一些观点是来自于《EffectiveC++》和《C++编程思想》,这两本书中的知识给了我很多启发,也让我懂得了许多不一样的知识点,...博文来自: 努力努力再努力的博客

大数据期末知识点总结

阅读数 1954

大数据特点:五个主要技术特点:5VVolume(大体量):即可从数百TB到数十数百PB、甚至EB规模。Variety(多样性):即大数据包括各种格式和形态的数据。Velocity(时效性):即很多大数...博文来自: 白得不能再白

干货:计算机网络知识总结

阅读数 5738

目录:一,计算机概述二,物理层三,数据链路层四,网络层五,运输层六,应用层一,计算机概述(1),基本术语结点(node):网络中的结点可以是计算机,集线器,交换机或路由器等。链路(link):从一个结...博文来自: 不忘初心

Android面试知识点汇总

阅读数 2683

四大组件:Activity:生命周期:启动模式:standard、singleTop、singleTask、singleInstance任务栈:前台任务栈、后台任务栈TaskAffinity+sing...博文来自: 小二的茶馆

Vue.js面试题整理

阅读数 7284

一、什么是MVVM?MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View代表UI组件,...博文来自: 分享我的点点滴滴,在成长路上与你同行!

mybatis一级缓存(session cache)引发的问题

阅读数 4万+

mybatis一级缓存(session cache)引发的问题博文来自: flysharkym的专栏

spring boot +WebSocket(三) 点对点式

阅读数 3万+

前两篇博客演示了广播式的websocket 推送。 广播式有自己的应用场景,但是广播式不能解决我门一个常见的场景,即消息由谁发送、由谁接收的问题。本例中演示了一个简单的聊天室程序。例子中只有两个用户...博文来自: 哎幽的成长

AutoCAD图纸统计工具

阅读数 347

4、图纸统计工具 软件介绍:该工具可以统计已打开AutoCAD图纸模型空间中符合预订要求的实体的数量,进而可用于统计各项目的数量。...博文来自: jellymiki的博客

深度学习(卷积神经网络)一些问题总结

阅读数 12万+

深度卷积网络   涉及问题: 1.每个图如何卷积:   (1)一个图如何变成几个?   (2)卷积核如何选择? 2.节点之间如何连接? 3.S2-C3如何进行分配? 4.16-...博文来自: 江南研习社

Qt的Signal和Slot机制(二)

阅读数 1万+

第二节 Signal和Slot的粘合剂 如果要连接一个Signal和Slot我们会用connect函数,下面我们就看一下connect是如何把Signal和Slot粘合在一起的。 以下是conn...博文来自: SuperFPE的专栏

tensorflow在linux系统上的安装

阅读数 1万+

tensorflow在ubuntu系统上按照官方文档安装起来相对容易,在centos上由于没有apt-get( yum)相对困难一些,本文会提到一些安装过程中遇到的一些坑及解放方案。...博文来自: zhangweijiqn的专栏

caffe-Windows:训练自己的数据

阅读数 7241

以下流程是根据博客http://blog.csdn.net/zb1165048017/article/details/52447567;并根据自己的实际经验而成,亲测可用。 以下路径多是绝对路径,需要...博文来自: xll_bit的博客

python 将目下的excel全部转xml文件到指定的目录

阅读数 5112

上一篇文章说了python如何解析excel文件博文来自: waylyn_wu的专栏

(超详细)读取mnist数据集并保存成图片

阅读数 1万+

mnist数据集介绍、读取、保存成图片 1、mnist数据集介绍: MNIST数据集是一个手写体数据集,简单说就是一堆这样东西  MNIST的官网地址是 MNIST; 通过阅读官网我们可以知...博文来自: YF_Li123的博客

瑞利、莱斯与Nakagami-m信道衰落模型

阅读数 1万+

一、信道的定义与调制信道的数学模型 1.信道的定义与分类         信道(Channel)是指以传输媒质为基础的信号通道。根据新到的定义,如果信道仅是指信号的传输媒质,这种信道称为狭义信道;如果...博文来自: Seth的博客

LSTM简介以及数学推导(FULL BPTT)

阅读数 9万+

前段时间看了一些关于LSTM方面的论文,一直准备记录一下学习过程的,因为其他事儿,一直拖到了现在,记忆又快模糊了。现在赶紧补上,本文的组织安排是这样的:先介绍rnn的BPTT所存在的问题,然后介绍最初...博文来自: 天道酬勤,做一个务实的理想主义者

强连通分量及缩点tarjan算法解析

阅读数 65万+

强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自: 九野的博客

jquery/js实现一个网页同时调用多个倒计时(最新的)

阅读数 52万+

jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自: Websites

greenDAO的简单使用(一)

阅读数 4576

greenDAO是Android经常使用的ORM开源框架,ORM(Object-Relation-Mapping)对象关系映射,它可以帮助 Android 开发者快速将Java对象映射到SQLite数...博文来自: DMT专栏

关于SpringBoot bean无法注入的问题(与文件包位置有关)

阅读数 25万+

问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统...博文来自: 开发随笔

plsql的命令(command)窗口与sql窗口有什么区别20170620

阅读数 5万+

command窗口是命令窗口,即为sqplus窗口,有命令提示符,识别sqlplus命令,基本的命令都可以执行 sql仅可执行DDL、select、DML等...博文来自: Ape55的博客

Web前端面试指导(三十):JavaScript有几种类型的值?你能画一下他们的内存图吗?

阅读数 5218

题目点评 数据类型是所有程序都会涉及到的,是计算机语言比较基础知识,这种问题被问到的可能性其实并不大,这样的题目只要花点时间把它记下来就好了,难易程度一般。  两大类: 栈:原始数据类型(Und...博文来自: 雄领IT的专栏

基于Linux的智能家居的设计(5)

阅读数 2万+

4  软件设计   软件设计部分主要包括uboot移植、内核编译、系统移植、设备驱动编程、应用程序编程(QT编程、mysql数据库编程、控制系统编程)、各个模块的功能函数(部分是在windows下面的...博文来自: 求是07的专栏

SNMP协议详解<二>

阅读数 15万+

上一篇文章讲解了SNMP的基本架构,本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1、v2c、v3)进行区别! 四、SNMP协议数据单元 在SNMP管理中,管理站(NMS)和代理(Age...博文来自: 假装在纽约

魔兽争霸3冰封王座1.24e 多开联机补丁 信息发布与收集点

阅读数 5万+

畅所欲言!博文来自: Smile_qiqi的专栏

连续特征离散化和归一化

阅读数 6万+

连续特征进行离散化处理。博文来自: hero_fantao的专栏

Qt5.8.0在msvc2015方式下的静态编译过程记录

阅读数 4281

Qt 5.8.0在msvc2015方式下的静态编译记录本次记录把Qt5.8.0源码在msvc2015community版下静态编译的过程。 1、准备工作 2、配置Qt的Makefile文件 3、编译Q...博文来自: csdn64的博客

thymeleaf模板实现html5标签的非严格检查

阅读数 5万+

一、概述最近在springboot项目引入thymeleaf模板时,使用非严格标签时,运行会报错。默认thymeleaf模板对html5标签是严格检查的。二、在项目中加NekoHTML库在Maven中...博文来自: Luck_ZZ的博客

Spring Boot MyBatis 动态数据源切换、多数据源,读写分离

阅读数 3万+

项目地址:https://github.com/helloworlde/SpringBoot-DynamicDataSource/tree/dev 在 Spring Boot 应用中使用到了 MyB...博文来自: HelloWood

设计制作学习  机器学习教程  Objective-C培训  交互设计视频教程  颜色模型 

mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习知识点汇总 python干货教程

Vue 面试中常问知识点整理 - 大灰狼的小绵羊哥哥的博客 - CSDN博客

4-24

2018年09月18日 13:44:21 大灰狼的小绵羊哥哥 ...vue+vue-router+vuex+axios+es6+sass减少dom操作...vue面试题(纯干货百分百面试问到) 11-05 阅读数...

JS面试题总结(含ES6) - cmy0816的博客 - CSDN博客

5-19

 

大灰狼的小绵羊哥哥

关注

原创

142

粉丝

3238

喜欢

1136

评论

605

等级:

 

访问:

 

698万+ 

积分:

 

6万+ 

排名:

 

60

勋章:

 

最新文章

个人分类

展开

归档

展开

热门文章

最新评论

 

程序人生

程序人生

 

CSDN资讯

kefu@csdn.netQQ客服

客服论坛400-660-0108 

工作时间 8:30-22:00

关于我们招聘广告服务  网站地图

百度提供站内搜索 京ICP备19004658号

©1999-2019 北京创新乐知网络技术有限公司 

经营性网站备案信息网络110报警服务

北京互联网违法和不良信息举报中心

中国互联网举报中心家长监护版权申诉

  • 1

  •  

  •  
  •  
  •  
  •  
  •  

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值