标识符(identifier)
指的是用来识别各种值的合法名称。最常见的标识符就是变量名,以及函数名。JavaScript 语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
-
标志符命名规则:
- 第一个字符可以是任意Unicode字母(可以是英文字母和其他语言的字母),以及美元符号($)和下划线 _
- 第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以是数字0-9
- 中文也是合法的标识符
-
以下都是正确的:
$ 是合法的标识符 _ 是合法的标识符 var _ = 1 是合法语法 var $ = 1 是合法语法 var _0_ = 是合法语法 var 变量 = 2;复制代码
图片的onerror事件
img.onerror =function() { //这里写图片加载失败的操作}复制代码
js是动态类型语言
即变量的类型没有限制,变量可以随时更改类型。
```var a = 'aaa'; a = 1;```复制代码
变量提升
js引擎的的工作方式是先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升。
switch
switch (fruit) { case "banana": // ... break; case "apple": // ... break; default: // ...}复制代码
1.注意:每个case代码内部的break都不能少,否则会接下去执行下一个case代码块而不是跳出switch结构
2. switch语句和case语句部分都可以使用表达式,switch语句后面的表达式与case语句后面的表达式比较运行结果时,采用的是严格相等运算符'===',而不是相等运算符'==',这意味着比较时不会发生类型转换
js中的&& ||
js中a&&b 或者 c||d 这种类型的值基本上不会是 true或者false, 他的值要不是 a或者b 或者c 或者d 一般是现取,而不会再产生一个新的值
如果是&& 它的值就是它遇到的第一个falsy值
eg:
找到falsy值之后,后面的就不看了1&&0&&console.log(3)console.log(3)不会执行,因为遇到0的时候,就直接返回0了,console.log(3)的值是undefined ,因为他没有返回值的,他只是打印出3而已,如果没有falsy值,就返回最后一个真值 1&&2&&3//结果是3复制代码
|| 只要有一个真值,整个或链条就是真的
找到真值之后,后面的就不看了复制代码