字面量,变量
- 字面量都是一些不可改变的值
- 比如:1,2,3,4,5
字面量都是可直接用的,但是我们一般不会直接使用字面量
2. 变量可以用来保存字面量
变量的值可以用来改变,方便我们使用,开发中都是通过变量去保存字面量
js中的变量都是存在于栈内存的
-var 来申明一个变量
var a = 123;
var b = a ;
a ++
// 栈内存中是独立存在的a改变不会影响b的值
console.log(a,b)
// a 等于124,b等于123
-var a = 0
-a = 4;为变量赋值
标识符
在js中所有可以由我们自主命名的都是标识符
例如,变量名,函数名,属性名都属于
规则
-
标识中可以函数子母_下划线%+$
-
不能以数字开头
-
不能是ES中的关键字或保留字
-
标识符一般是驼峰命名法
数据类型指的是字面量类型
一共六种数据类型
1.String 字符串
2.Number 数值
3.boolean 布尔值
4.Null 空值
5.Underfined 未定义
6.object 对象
- object属于引用数据类型,其他的是基本数据类型
1.String
// String 在js中需要使用引号引起来
// 引号不能嵌套
var str = 'string'
\标识转义符
\" 表示 "
\\' 表示 '
\n表示换行
\t 表示制表符
2.Number
在js中所有的数值都是Number类型
包括整数和浮点数
可以使用运算符type of type of 变量
来检查变量的类型
检查字符串时会返回string
检查数值时会返回number
js中可以表示数值的最大值 = Number.MAX-VALUE
NaN是一个特殊的数字 (not a Number)
var num = 123;
console.log(type of num)
3.boolean
布尔值只有两个 true和false
4.Null
专门用来表示一个空的对象
使用type of会返回object
5.Undefined
为被定义的,当申明一个变量但是不给他赋值
强制类型转换
将一个数据类型转化为其他的数据类型
将其他数据类型转换为string
方式一
调用被转换数据类型的toString()方法,该方法不会改变原变量,他会将结果返回
var a = 123;
var b = a.toString(); // 转化为字符串
String(a)
方式二
调用函数String()
6.object引用数据类型
1.对象也是变量。但是对象包含很多值。
// 对象的申明方式
var obj = new Object()
obj.name = '唐三'
console.log(obj)
// 输出{name:"唐三"}
// 或
var obj = {name:"唐三"}
console.log(obj)
// 输出{name:"唐三"}
2.你可以通过两种方式访问对象属性:
var obj = {
name:"唐三",
age:18,
like:"小舞"
}
console.log(obj.name)
console.log(obj["name"])
输出结果相同
3.对象是保存到堆内存的
每创建一个对象都会创建一个内存地址(对象的银引用)
对象默认是没有名字的,只有一个内存地址
var obj ={
name:"唐三",
age:18,
like:"小舞"
}
var obj2 = obj
obj.name = "变化了"
// obj2 ={
// name:"变化了",
// age:18,
// like:"小舞"
//}
// 相当于obj2指向的内存地址等于obj的
// 如果obj中的变量修改属性时obj2也会改变
设置obj2为null时
obj不变还是对象
{name:"相同的"}
obj.name == obj2.name // 为false
两个对象的内存地址不同返回值为false
比较引用数据类型时, 比较的是内存地址