1 JavaScript 的宿主环境有哪些?
(1)浏览器的平台化
(2)Node
(3)数据库操作
(4)移动平台开发
(5)内嵌脚本语言
(6)跨平台的桌面应用程序
2 JavaScript 的核心语法包括?
2-1 语句:
- JavaScript 程序的执行单位为行(line),每一行就是一个语句。语句(statement)是为了完成某种任务而进行的操作。
2-2 变量:
a. 先声明变量再赋值:
var width; //var-用于声明变量的关键字
width = 5; //width-变量名
b. 同时声明和赋值变量:
var catName= "lisa";
var x, y, z = 1;
c. 不声明直接赋值(一般不使用):
width=5;
变量可以不经声明而直接使用,但这种方法很容易出错,也很难查找排错,所以不推荐使用。
2-3 标识符:
标识符(identifier)指的是用来识别各种值的合法名称。最常见的标识符就是变量名,以及函数名。
标识符命名规则如下:
第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9。
2-4 注释:
注释分为:单行注释和多行注释
2-5 区块:
使用大括号,将多个相关的语句组合在一起,称为“区块”
2-6 条件语句:
a. if及if-else语句
if(x===1){
console.log('this is number one')
} else if (x===2) {
console.log('this is number two')
} else {
console.log('this is an other number')
}
b. switch
switch (x) {
case 1:
console.log('x 等于1');
break;
case 2:
console.log('x 等于2');
break;
default:
console.log('x 等于其他值'); }
c. 三元运算符
(条件) ? 表达式1 : 表达式2
如果条件为true,执行表达式1,否则执行表达式2
x===1?x++:x=1
2-7 循环语句:
a. for循环
for(初始化; 条件; 增量)
{ JavaScript代码; }
b. while 循环
while(条件)
{ JavaScript代码; }
3 浏览器提供的API 有哪几类?
(1)浏览器控制类:页面跳转,弹窗;
(2)DOM操作类:获取标签,删除标签;
(3)网络控制类:websocket、http网络协议
4 什么是WebAssembly?
WebAssembly 是一种可以使用非 JavaScript 编程语言编写代码并且能在浏览器上运行的技术方案。它是一种汇编语言,他是一个概念机上的机器语言,不是在一个真正存在的物理机上运行的机器语言。WebAssembly 指令有时候被称为虚拟指令。它比 JavaScript 代码更快更直接的转换成机器代码,但它们不直接和特定硬件的特定机器代码对应。
5 JavaScript 语言标准是什么?哪个组织负责制定?JavaScript 与 ECMAScript 的关系?
(1)JavaScript 语言标准是:ECMAscript 6 简称ES6。
(2)ECMA(European Computer Manufacturers Association)欧洲计算机协会制定和发布制定的。
(3)ECMAScript和JavaScript的关系:前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是 可以互换的。
6 如何理解JavaScript 的编程风格是函数式编程和面向对象编程的混合体?
7 JavaScript 程序的执行单位?
JavaScript 程序的执行单位为行(line),每一行就是一个语句。语句(statement)是为了完成某种任务而进行的操作。
8 语句和表达式的区别?
a = 1
这就是一个语句,目的是把1赋值给变量a,执行这条语句后,a的值就变为1,而不管它原来是什么值;
if a = 1 then …
这里的a=1则是一个表达式,它本身并不会产生任何动作,而只是把变量a的值和1进行比较,然后把比较结果交给if语句去处理。
也就是说:语句是可以单独执行的、能够产生实际效果的代码;而表达式则是包含在语句中,根据某种条件计算出一个值或得出某种结果,然后由语句去判断和处理的代码。
9 什么是变量?
变量就是为“值”起名,然后引用这个名字,就等同于引用这个值。变量的名字就是变量名。
10 什么是变量提升?
js在运行时,会先对代码行进行扫描,拿到声明的变量,然后再执行其余的代码,所有声明的变量都会被提升到代码的最前面,这一行为被称为变量提升。
11 标识符命名规则有?
(1)第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
(2)第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9。
12 什么是“区块”?
使用大括号,将多个相关的语句组合在一起,称为“区块”
13 为什么优先采用“严格相等运算符?
因为有时候两个变量的类型不同,如果不使用严格相等运算符,就会造成两个变量是相等的,但其实它们只是值相等类型不同。严格相等运算符不仅可以比较两个变量的值是否相等,还能判断两个变量的类型是否相等。
14 switch语句后面的表达式,与case语句后面的表示式比较运行结果时,采用的是严格相等运算符还是是相等运算符?
采用的是严格运算符,因为这样不会自动进行类型转换,从而导致判断可以更加准确进行
15 while 循环和for循环的区别?
(1)循环结构不同:
while循环是先判断后循环,不知道循环次数;
for循环知道循环次数,先判断后循环
(2)执行条件的判断方式不同
for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。
while循环当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出(而不是立即跳出循环)。
(3)语法不同
for循环的语法为:for (变量 = 开始值;变量 <= 结束值;变量 = 变量 + 步进值) {需执行的代码 }。
while循环的语法为:while (<条件>) {需执行的代码 }。
16 break 语句和 continue 语句的区别?
break语句用于跳出代码块或循环。
continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
17 JavaScript 语言语句的前面有标签(label)的作用?
为了方便标记位置,相当于定位符,用于跳转到程序任意位置。