Appearance
变量
用于存放数值的容器 独特之处它存放的数值是可以改变的
声明变量
javascript
let myName;
let myAge;
初始化变量
javascript
myName = "cy";
myAge = 22;
大多数时候在声明变量的时候给变量初始化
javascript
let myName = "cy";
let myAge = 22;
var 和 let 的区别
- let 不能重复声明,var 可以
- let 不能变量提升,var 可以
- let 块级作用域,var 是函数作用域
- let 声明的变量不属于 window,var 声明的变量属于 window
变量命名规则:
- 不要用_、数字开头
- 大小写敏感,myage 与 myAge 是两个不同的变量
- 不要使用保留字
- 使用小写驼峰命名法
- 变量名直观,描述了所包含的数据
变量类型
- Number
javascript
let myAge = 22;
- String
javascript
let myName = "cy";
- Boolean
javascript
let iAmAlive = true;
- Array
javascript
let myNameArray = ["Alice", "Bob", "Jim"];
- Object
javascript
let dog = {
name: "Spot",
breed: "Dalmatian",
};
null 类型
null 值表示一个空对象指针,这也是给 typeof 传一个 null 会返回"object"的原因:
javascript
let car = null;
console.log(typeof car); // "object"
在定义将来要保存对象值的变量时,建议使用 null 来初始化,不要使用其他值。
Boolean 类型
它有两个值:true 和 false
注意
布尔值字面量 true 和 false 是区分大小写的
Boolean()转型函数可以在任意类型的数据上调用,而且始终返回一个布尔值。
| 数据类型 | 转换为 true 的值 | 转换为 false 的值 |
|---|---|---|
| Boolean | true | false |
| String | 非空字符串 | ""(空字符串) |
| Number | 非零数值(包括无穷值) | 0、NaN |
| Object | 任意对象 | null |
| Undefined | N/A(Not Applicable 不存在) | undefined |
理解以上转换非常重要,因为像 if 等流控制语句会自动执行其他类型值到布尔值的转换
javascript
let message = "Hello world!";
if (message) {
console.log("Value is true");
}
typeof
返回传递给它的变量的数据类型
javascript
let myAge = "22";
console.log(typeof myAge); //string
let test = 6 < 3;
console.log(typeof test); //boolean
let myNameArray = ["Alice", "Bob", "Jim"];
console.log(typeof myNameArray); //object
let dog = {
name: "Spot",
breed: "Dalmatian",
};
console.log(typeof dog); //object
instanceof
此运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上
语法:object instanceof constructor
object:某个实例对象 constructor:某个构造函数
instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上
javascript
let str = "agagawge34242";
let str2 = String("agagawge34242");
let str3 = new String("agagawge34242");
console.log(typeof str); //string
console.log(typeof str2); //string
console.log(typeof str3); //object
console.log(str instanceof String); //false
console.log(str2 instanceof String); //false
console.log(str3 instanceof String); //true
console.log(str3 instanceof Object); //true
javascript
let arr = [2, 3, 4];
let arr2 = new Array([3, 2]);
console.log(typeof arr); //object
console.log(typeof arr2); //object
console.log(arr instanceof Array); //true
console.log(arr instanceof Object); //true
console.log(arr2 instanceof Array); //true
console.log(arr2 instanceof Object); //true