JavaScript高级题

JavaScript高级题

1.Java和JavaScript是什么关系?

就像雷锋和雷霆塔的关系一样。

一般认为,当时 Netscape 之所以将 LiveScript 命名为 JavaScript,是因为 Java 是当时最流行的编程语言,带有 “Java” 的名字有助于这门新生语言的传播。

2.ES6听说过吗?和JavaScript是什么关系?ES2015听说过吗?都是什么关系?

CMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现(另外的ECMAScript方言还有Jscript和ActionScript)。日常场合,这两个词是可以互换的。

ES6既是一个历史名词,也是一个泛指,含义是5.1版以后的JavaScript的下一代标准

3.如何把变量转成数字?转成布尔?转成字符串?

转数字:

​ parseInt: 如果前几个字符可以是数字可以转成数字

​ Number:将整体转成数字( 例:123abc 不能转)

转字符串:

​ value.toString()

​ “”+value

​ String(value)

4.var 和 let 是干什么用的?什么区别?

var:

​ 可以定义 局部变量和 全局变量

​ 如果在函数中定义变量时没有写 var 或者 let 那么变量将会变成全局变量

let:

​ 可以定义 块级变量 、局部变量、和全局变量

​ let 可以定义块级变量

区别

  • let : 变量只能声明一次
  • var : 变量可以多次声明

5.在一个函数中,如果定义变量时没有添加 var 会出现什么情况?

有的话应用于作用域,没有的话默认为全局变量

6.什么是内存泄漏?

7.什么是块级作用域?

JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称ES6)中新增了块级作用域。
块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。

8.什么是运算符短路?有什么用?

我们可以使用 &&|| 实现短路操作。

&& : 连接多个语句,当语句1为真是执行语句2.

||:连接多个语句,当语句1为假时执行语句2.

可以用短路运算符来实现一些简写,比如,有时我们获取到一个变量,不知道它的值是什么,但我们希望无论如何它都是一个数字,至少是个0,我们就可以写:

// 如果 a 是假就得到0
var a = a || 0
// 如果 o 存在就调用 o.name
o && o.name()

9.说出JS中你用过的数据类型?

10.常用的循环

11.arguments的用途

在函数中可以使用 arguments 获取函数在调用时的参数数组。

function abc() {
    console.log( arguments.length )   // 2 , 获取参数的数量
    console.log( arguments[0] )      // tom ,第一个参数值
    console.log( arguments[1] )      // jack ,第二个参数值
}
abc('tom','jack')

12.什么是匿名函数?应用场景?

匿名函数可以用来隔绝一段作用域。

有时我们需要在一个现有的项目中添加新的代码,这时当我们添加变量、函数时就有可能出现和原来系统中变量名、函数名冲突的情况,为了避免我们的代码和原代码中出现命名冲突的情况,我们就可以把我们的代码放到一个匿名函数中,然后调用这个匿名函数,这样我们所写的代码都只在这个匿名函数内生效,就不会影响其它代码了。

有两种写法,来调用匿名函数得到一段独立的作用域:

(function(){

    // 这里的代码不影响外面的作用域

})()

!function(){

    // 这里的代码不影响外面的作用域

}()

转载请注明: qqwBlog JavaScript高级题

上一篇
GET和POST两种基本请求方法的区别 GET和POST两种基本请求方法的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经
2018-12-27
下一篇
使用支付宝沙箱的方法 使用支付宝沙箱的方法
准备我们接下来要为网站中添加支付的功能,在添加这些功能之前,我们需要先做些准备的工作。 curlcurl 是一个比较常用的小软件,它可以用来在命令行中发送 GET 、POST 等请求,在开发时非常有用。 可以在命令行中输入 curl 来查
2018-12-19