Giter Club home page Giter Club logo

fed-e-task-01-01's Introduction

简答题答案及说明

以下内容中图片无法显示,请点击当前链接查看:简答题答案及说明

答案:10

说明

原题

image

稍微改变一下


var a = [];
var i ;
for(i = 0; i < 10 ; i++){
	console.log('索引',i)
	a[i] = function(){
		console.log(i)
	}
}
console.log('全局变量',i);
a[6]()

在for循环中,var 声明的i变量会上升到全局,方法的变体,for循环执行的是同步任务,会在主线任务开始后按顺序执行,当for循环判断i = 10的时候已经不满足for循环的遍历条件,此时循环结束, 而当a6函数被调用的时候i作为全局变量已经是10了,函数调用时console.log(i)的结果必然是10 2. 答案:会报错

说明: 原题 image

if语句中的{}是一个区块拥有块级作用域,在区块用let声明的tmp变量会被封闭在{}这个作用域中,var声明tmp这个全局变量影响不到块级作用域,又因为let的声明的变量不会变量提升,运行时在{}这个区块中,console.log(tmp)中的tmp还没有被声明,所以会报错

答案:4 image

说明:使用...操作符展开数组作为Math.min()方法的参数能直接获取到arr数组的最小值

Math.min(...arr)

答案:

  1. 变量提升:let和const不会变量提升,在声明之前使用会报错;而var会变量提升 ,声明前使用默认是全局变量,默认值为undefined
  2. 块级作用域:let和const声明的变量存在块级作用域,在块级作用域用let或const声明的变量不会受外界影响,凡在声明之前使用的变量都会报错,这叫暂时性死区,块级作用域会形成一个封闭作用域把let或const声明的变量包起来,块级作用域是es2015之前没有的
  3. var允许重复声明,let和const不允许重复声明
  4. const声明的是常量,一旦声明不允许改变

答案: 20 说明image

image

答案

  1. 解决对象属性名冲突的问题
  2. 对象可以使用Symbol作为对象的属性名或函数名
  3. 可以借助Symbol去模拟实现对象的私有成员

image

答案

1.基础类型中number,string,boolean等类型的变量和值都在栈中,如果被复制都属于浅拷贝
2.object和array是引用类型,他们声明的变量名在栈中,但是他们的值却在堆中,变量名只是堆的一个引用地址,当浅拷贝object和array时只拷贝了栈中的引用地址,深拷贝时会连带堆中的值拷贝到一个新的堆中

image

答案

1.我对于js异步编程的理解举个例子就是,我中午想吃饺子了,先把装好水的锅放在煤气灶上开始煮,煮的同时呢我在切菜剁馅包饺子,也就是同时干多个事情 2.Event Loop是事件循环机制,所有同步任务都在主线上执行,异步任务都在任务队列中等待,当同步任务完成后,异步任务等待时间到了就会进入到事件循环队列,最后进入执行栈执行

image

3.宏任务就是在当前线程中按照顺序排队执行的任务,微任务就是当前宏任务后所连带的额外的任务

答案

Promise.resolve().then(()=>{
	var a = 'hello';
	return a
}).then(a=>{
	var b = a + '拉勾'
	return b
}).then(b=>{
	var c = b +  'I O U'
	console.log(c);
})

答案

1.TypeScript是JavaScript的超集,所谓超集就是在JavaScript原有的基础之上多了一些特性,包括类型系统和ES6+的支持,写完代码后编译成JavaScript。 2.TypeScript最低能编译ES3版本的JavaScript,兼容性良好,任何一种JavaScript运行环境都支持,如浏览器应用,node应用,react-native,electron等等。 3.TypeScript相比JavaScript功能更强大,生态更健全、更完善,特别是开发工具这块,微软对开发工具的支持都特别友好,angular和vue3.0都是用JavaScript开发的,适合长期维持的大型项目

答案

1.语言本身多了很多概念,如接口、泛型、枚举等等,会提高我们的学习成本 2.项目初期,TypeScript会增加一些项目成本,如类型声明需要单独编写

fed-e-task-01-01's People

Contributors

hanchangbin avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.