入门篇参考问题

https://wangdoc.com/javascript/basic/index.html

JavaScript 的核心语法包括?

基本的语法构造(比如操作符、控制结构、语句)和标准库(就是一系列具有各种功能的对象比如Array、Date、Math等)

浏览器提供JavaScript 调用的额外 API有哪几类?

  • 浏览器控制类:操作浏览器
  • DOM 类:操作网页的各种元素
  • Web 类:实现互联网的各种功能

JavaScript 的复杂性体现在哪两个方面?

  • JavaScript 要发挥作用,需要掌握大量的外部 API,几乎涉及网络应用的各个方面,掌握它们绝非易事。
  • JavaScript 语言有一些设计缺陷,学习 JavaScript,很大一部分时间是用来搞清楚哪些地方有陷阱。

为何要发明CoffeeScript、TypeScript、Dart 等类JS语言?

因为JS语言设计坑太深,有时为了更合理地编写 JavaScript 程序,就不能用 JavaScript 来写,不得不发明新的语言。

JavaScript 与 Java 的区别和联系?

  • 联系:JavaScript 的基本语法和对象体系,是模仿 Java 而设计的。
  • 区别:
    • JS的函数是一种独立的数据类型;
    • JS采用基于原型对象(prototype)的继承链;
    • Java 语言需要编译,而 JS 则是运行时由解释器直接执行;

JavaScript 与 ECMAScript 的关系?

ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。ECMAScript 只用来标准化 JavaScript 这种语言的基本语法结构,与部署环境相关的标准都由其他标准规定,比如 DOM 的标准就是由 W3C组织制定的。

什么是语句?

语句(statement)是为了完成某种任务而进行的操作;

语句和表达式的区别?

前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。表达式不需要分号结尾,一旦在表达式后面添加分号,则 JavaScript 引擎就将表达式视为语句。

为何说JavaScript 是一种动态类型语言?

因为变量的类型没有限制,变量可以随时更改类型。

什么是变量提升?

由于JS引擎先解析后运行代码,所以所有变量的声明语句,都会被提升到代码的头部,这就是变量提升。

为何有些开发者习惯将常量写在运算符的左边?

避免不小心将相等运算符写成赋值运算符而引起的未知bug,通过报错提前发现。

if (x = 2) { // 不报错
if (2 = x) { // 报错

为何switch每个case代码块内部的break语句不能少?

否则会接下去执行下一个case代码块,而不是跳出switch结构。

为何switch进行比较时不会发生类型转换?

switch语句后面的表达式,与case语句后面的表示式比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==)。

break 语句和 continue 语句的作用?

跳转作用,可以让代码不按既有的顺序执行。

你可能感兴趣的:(入门篇参考问题)