1-1 基本数据类型number,string,boolean

  1. // 基本数据类型 number string boolean
  2. var a = 10;
  3. var str = "hello world";
  4. var b = true;
  5. console.log(typeof a); // number
  6. console.log(typeof b); // string
  7. console.log(typeof c); // boolean

1-2 引用数据类型 Array,Function,Object

1-2-1数组Array

数组 array [] typeof 不能识别数组

  1. // 数组 array [] typeof不能识别数组
  2. // 使用 Array.isArray 来判断
  3. var arr = [1,2,3];
  4. console.log(arr.length);
  5. console.log(typeof(arr)); // object
  6. console.log(Array.isArray(arr)) // true
  7. // 数组下标从0开始,下标越界之后输出undefined

1-2-2 对象

  1. // 声明JSON对象
  2. // {key:value} {键:值}
  3. // 在js中key的引号可以省略
  4. var zheng = {
  5. "name":"zheng",
  6. "sex":"女"
  7. }
  8. var obj ={
  9. name:"zhang",
  10. age:18
  11. }
  12. // 2.读取Json对象的值
  13. console.log(zheng.name)
  14. // 3.给对象添加属性
  15. zheng.skill = "javascript"
  16. console.log(zheng)

1-2-2-1 读取对象的值

  1. . 只能读取具体的属性值
  2. [] 读取变量要通过中括号的方式读取
  1. var obj={
  2. 1001:false,
  3. 1002:false,
  4. 1003:false
  5. }
  6. for(let key in obj){
  7. if(key ==1003){
  8. obj[key] = true
  9. }
  10. }
  11. console.log(obj)

获取对象的长度:Object.keys(obj).length
判断一个对象是否包含自定义属性: changeValues.hasOwnProperty(‘checkType’)

1-2-2-2 对象的方法

  1. Object.keys(obj) // 可以获取对象所有的键值 返回的是一个数组
  2. Object.values(obj);
  3. Object.assign(obj,{age:18}) // 作用:给对象添加新的属性

1-2-2-2 Json的方法

  1. JSON.parse( ) // 将json格式的字符串转为json对象
  2. JSON.stringify( ) // 将json对象转为json格式的字符串
  • json-array结合
    1. var obj = [{name:"zcy",age:18},{name:"mhm",age:18}]
    2. console.log(obj)

    1-2-2-3 对象引用解除

    1. JavaScript语言有垃圾收集的功能,因此当你使用引用类型时无需担心内存分配。但最好在不使用对象时将其引用解除,让垃圾收集器对那块内存进行释放。解除引用的最佳手段是将对象变量置为null
    ```javascript var object1 = new Object();

// do something

object1 = null; //这里,对象object1被创建然后使用,最后设置为null。当内存中的对象不再被引用后,垃圾收集器会把那块内存挪作它用(在那些使用几百万对象的巨型程序里,对象引用解除尤其重要)。

  1. <a name="liYTH"></a>
  2. ### 1-2-3 函数function
  3. ```javascript
  4. // function 封装一段特定功能的代码
  5. function go(){
  6. console.log("hello world")
  7. }
  8. go();
  9. // 函数的参数是局部变量
  10. function show(x){
  11. console.log(x)
  12. }
  13. 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精准判断

2、 js数据类型 - 图1
2、 js数据类型 - 图2

1-3 constructor

如果不改变原型,是可以判断的

2、 js数据类型 - 图3