当前位置: 首页 > Web前端 > JavaScript

JS基础语法

时间:2023-03-27 14:00:26 JavaScript

ES6之前的版本都是垃圾。ES6兼容之前的版本,所以有一半垃圾。ES2019和ES6没有太大区别,下面都是ES6版本的表达式和语句。(1,2)表达式的值就是函数的返回值。console.log(3)的值为Undefined,因为返回值未定义。虽然确实会打印3JS区分大小写的回车,但是大多数情况下回车没有实际作用,只是不能在一个地方加回车,也就是在return之后,否则会返回undefiendidentifier(变量名属于identifier).其他标识符使用规则如下:首字符可以是任意Unicode字母(包括英文字母、希腊字母等字母、中文)、下划线、$符号。它不能是数字开头的第二个和后续字符。除了Unicode字母、美元符号和下划线,您还可以使用数字0-9。注释语法和其他语言一样注释也不是越多越好因为任何业务场景,代码都会写的很奇怪,踩过的坑都可以写注释,你遇到的错误。if语句if(expression){}中的{}在只有一条语句时可以省略(不建议这样写)。请注意,有时一行中可能有两个语句。缩进可能非常不正常。面试题故意省略花括号:consta=1;if(a===2)console.log('a')console.log('aisequalto2')最后会打印出a等于到2.if语句实际上仅适用于console.log('a')Switch语句。不建议每个case都用break,除非你想跑完几个case&&(and)如果短路逻辑为false,就不要看下面的公式了。常见写法:fn&&fn()fn存在则调用,不存在则不使用||(or)如果短路逻辑为真,不要看下面的公式a||b等价于if(!a){b}一个常见的应用场景是给a设置一个默认值(保证值)=一个||100表示??如果a存在,a=a表示没有,如果a不存在,a=100相当于if(a){a=a}else{a=100}while循环面试题leta=0.1;while(a!==1){console.log(a)a=a+0.1}由于浮点数计算不精确,上面的代码会死循环。for循环用于面试:for(leti=0;i<5;i++){console.log(i)}这里打印出来的i是什么?我是未定义的。因为Let声明的变量不会增加变量,所以setTimeout会在一段时间后执行for(vari=0;i<5;i++){setTimeout(()=>{console.log(i)},0)}会打印5次5我们已经知道for(vari=0;i<5;i++){}执行完成后,i的值为5,过一会执行setTimeout,for循环就是当前任务,so这段代码的意思是等到for循环执行完,再打印5次i,所以会打印55for(leti=0;i<5;i++){setTimeout(()=>{console.log(i)},0)}当把var改成let的时候,会打印出0,1,2,3,4因为js为了满足一些人的普通思维,特意搞了一套for机制。label几乎没用,只有面试5%可能会考{a:1;}表示有代码块,代码块中有标签(label)a:1,表示标签为a,并且a的值大于1。代码不是对象foo:{console.日志(1)打破富;console.log('这一行不会输出')}console.log(2)foo表示label标识为foo,breakfoo表示退出当前Label,所以代码会输出1、2