JavaScript中的变量和数据类型
Js做客户端语言
按照相关的Js语法,去操作页面中的元素,有时还要操作浏览器里面的一些功能
Js由三部分组成:
ECMAScript
(ES
):描述了该语言的语法和基本对象DOM
(Document Object Model
):文档对象模型,描述处理网页内容的方法和接口,通过一些Js
的属性和方法,用来操作页面中的DOM
元素BOM
(Browser Object Model
):浏览器对象模型,描述与浏览器进行交互的方法和接口,用来操作浏览器的。
Js中的变量 Variable
JS中数据分为两大类:一是基本数据类型:Undefined
、Null
、Boolean
、Number
、String
、Symbol
,二是复杂数据类型:Object
,Object
本质上是由一组无序的名子对组成的。
变量:可变的量,在编程语言中,变量其实就是一个名字,用来存储和代表不同值的东西。
// ES3
var a = 123;
// ES6
let b = 100;
b = 200 //报错
const c = 1000;
// 创建函数也相当于在创建变量
function fn() {}
// 创建类也相当于创建变量
class A{}
// ES6的模块岛屿也可以创建变量
import a from './a.js'
// Symbol创建唯一值
let n = Symbol(100)
let m = Symbol(100)
总结:
- 用
var
声明的变量,可以重复声明,后声明的会覆盖前面的 - 用
let
声明的变量具有作用域,在同一作用域下不可重复声明变量,但是可以修改变量的值,例如let a = 1;
,不能再次声明a
,let a = 2;
会报错,提示:Uncaught SyntaxError: Identifier 'a' has already been declared
- 用
const
声明的变量为常量,不能修改该变量的值,但是像Object
这样的复杂数据类型,在内存中存放的是一个指向该对象的指针,也就是说,用const
声明的对象仍然可以修改该对象的值,但不可再次声明该对象
JS中的数据类型
-
基本数据类型
-
数字
Number
(常规数字和NaN
) -
字符串
String
-
布尔值
Boolean
-
空指针
Null
-
未定义
Undefined
-
唯一值(独一无二的值)
Symbol
-
-
引用数据类型
Object
对象类型{}
普通对象[]
数组对象RegExp
正则对象Function
函数数据类型Math
数学函数对象Date
日期对象
数据类型应用场景:
当我们通过Ajax
请求拿到数据之前,先在本地初始化数据,一般都会先给一个默认的数据,请求数据后再把数据放入到我们定义好的数据结构里面,比如:
var data = {
count: 0,
isActive: true,
goods: [],
model: null,
message: ''
}
验证数据类型 typeof
操作符
typeof
操作符用于检测给定变量的数据类型。typeof
操作符可以检测的数据类型有:
undefined
boolean
string
number
object
function
var message = 'some string'
console.log(typeof(message) // "string"
var arr = [1,2,3,4]
console.log(typeof(arr) // "object"
console.log(typeof(null) // "object"
在上面的例子中调用 typeof null
会返回"object"
,因为特殊值null
被认为是一个空的对象引用。用typeof
检测一个变量是否是数组并不准确,会返回"object"