1-1 基本数据类型number,string,boolean
// 基本数据类型 number string boolean
var a = 10;
var str = "hello world";
var b = true;
console.log(typeof a); // number
console.log(typeof b); // string
console.log(typeof c); // boolean
1-2 引用数据类型 Array,Function,Object
1-2-1数组Array
数组 array [] typeof 不能识别数组
// 数组 array [] typeof不能识别数组
// 使用 Array.isArray 来判断
var arr = [1,2,3];
console.log(arr.length);
console.log(typeof(arr)); // object
console.log(Array.isArray(arr)) // true
// 数组下标从0开始,下标越界之后输出undefined
1-2-2 对象
// 声明JSON对象
// {key:value} {键:值}
// 在js中key的引号可以省略
var zheng = {
"name":"zheng",
"sex":"女"
}
var obj ={
name:"zhang",
age:18
}
// 2.读取Json对象的值
console.log(zheng.name)
// 3.给对象添加属性
zheng.skill = "javascript"
console.log(zheng)
1-2-2-1 读取对象的值
. 只能读取具体的属性值
[] 读取变量要通过中括号的方式读取
var obj={
1001:false,
1002:false,
1003:false
}
for(let key in obj){
if(key ==1003){
obj[key] = true
}
}
console.log(obj)
获取对象的长度:Object.keys(obj).length
判断一个对象是否包含自定义属性: changeValues.hasOwnProperty(‘checkType’)
1-2-2-2 对象的方法
Object.keys(obj) // 可以获取对象所有的键值 返回的是一个数组
Object.values(obj);
Object.assign(obj,{age:18}) // 作用:给对象添加新的属性
1-2-2-2 Json的方法
JSON.parse( ) // 将json格式的字符串转为json对象
JSON.stringify( ) // 将json对象转为json格式的字符串
- json-array结合
var obj = [{name:"zcy",age:18},{name:"mhm",age:18}]
console.log(obj)
1-2-2-3 对象引用解除
```javascript var object1 = new Object();JavaScript语言有垃圾收集的功能,因此当你使用引用类型时无需担心内存分配。但最好在不使用对象时将其引用解除,让垃圾收集器对那块内存进行释放。解除引用的最佳手段是将对象变量置为null。
// do something
object1 = null; //这里,对象object1被创建然后使用,最后设置为null。当内存中的对象不再被引用后,垃圾收集器会把那块内存挪作它用(在那些使用几百万对象的巨型程序里,对象引用解除尤其重要)。
<a name="liYTH"></a>
### 1-2-3 函数function
```javascript
// function 封装一段特定功能的代码
function go(){
console.log("hello world")
}
go();
// 函数的参数是局部变量
function show(x){
console.log(x)
}
show(3);
1-3 全局变量和局部变量
// 函数里面使用var 定义的变量(包含函数的变量) --局部变量
// 函数外面声明的变量 --全局变量
var a = 10; // 全局变量
function show(){
console.log(a) // 10
var b = 20; // 局部变量
console.log(b); //20
}
show();
console.log(b) // 报错 b is not defined
1-4 判断数据的类型
1-1 typeof
## typeof 操作符去判断一个数据的类型,不可以判断 null 和 array
// 基本数据类型 number string boolean
var a = 10;
var str = "hello world";
var b = true;
console.log(typeof a); // number
console.log(typeof b); // string
console.log(typeof c); // boolean
1-2 instanceof
用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上
判断一个对象是否是数据类型的实例
obj instanceof Object; //true
## 只有 引用数据类型(Array,Function,Object)被精准判断
## 字面值不能被instanceof精准判断
1-3 constructor
如果不改变原型,是可以判断的