Skip to content
本页目录

变量

用于存放数值的容器 独特之处它存放的数值是可以改变的

声明变量

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 的值
Booleantruefalse
String非空字符串""(空字符串)
Number非零数值(包括无穷值)0、NaN
Object任意对象null
UndefinedN/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