zoukankan      html  css  js  c++  java
  • JS类型

    一.JS中的数据类型

    1.分类(2大类)

    • 基本(值)类型
      • Number: 任意数值
      • String: 任意文本
      • Boolean: true/false
      • undefined: undefined
      • null: null
    • 对象(引用)类型
      • Object: 任意对象
      • Array: 特别的对象类型(下标/内部数据有序)
      • Function: 特别的对象类型(可执行)

    2.判断

    • typeof:
      • 可以区别: 数值, 字符串, 布尔值, undefined, function
      • 不能区别: null与对象, 一般对象与数组
    • instanceof
      • 专门用来判断对象数据的类型: Object, Array与Function
    • ===
      • 可以判断: undefined和null

    3.图表展示

    (1)基本/值类型

    方式类型描述
    typeof Number 任意数值
    typeof String 任意字符串
    typeof Boolean true/false
    typeof/=== undefined undefined
    === null null

    (2)对象/引用类型

    方式类型描述
    typeof/instanceof Object Object
    instanceof Array 数组
    typeof Function 函数

    补充:

     1     <script>
     2     
     3     var a = {"name":"a"};
     4     var b = {"name":"b"};
     5     console.log(a.toString());  //[object Object]
     6 
     7     var t={};
     8     t[a] = 4;
     9     t[b] = 5;
    10     console.log(t[a]);   //5
    11     
    12     </script>

    其中t[a]相当于t[a.toString()]变为了t["[object object]"],b也一样此时值就被修改了。

    4.对象使用属性什么时候使用点号什么时候使用中括号:

    注意:两种写法不同:

    • 点号:obj.key
    • 中括号:obj["key"]或obj['key']
    1     var obj = {
    2       name: "obj",
    3       age: 1
    4     }
    5 
    6     console.log(obj.name);   //obj
    7     console.log(obj["name"]);//obj
    8     console.log(obj['name']);//obj

    (1)点号可以使用的情况下中括号一定可以使用,反之中括号可以使用点号则不一定可以使用

    当对象的键值为数字时不能使用obj.1而是使用obj["1"]

    1 var obj={
    2   0:"0",
    3   1:"1",
    4   2:"2"
    5 }
    6 console.log(obj["1"]);
    7 //console.log(obj.2)会报错

    当对象的键值需要进行拼接时不能使用点号,而是使用中括号

    1 var obj={
    2   a0:"0",
    3   a1:"1",
    4   a2:"2"
    5 }
    6 for(var index=0;index<3;index++){
    7   console.log(obj["a"+index]);
    8 }

    (2)当属性为变量者特殊字符时使用中括号

    当属性为变量时,中括号会将变量调用toString()方法:b.toString() = "x" ==> a[b]==a["x"]

    1 var b = "x";       //把属性x的标识符名作为字符串存储在变量b中
    2 var a = {x : 1};   //定义对象a
    3 console.log(a[b]);  //返回1。通过变量间接获取对象a的属性x的值
    4 console.log(a.b);  //返回undefined。点运算符无法识别变量引用

    特殊的:

    1       let symbol = Symbol();
    2       console.log(typeof symbol);
    3       console.log(symbol);
    4 
    5       let obj = {username: 'kobe', age: 39};
    6       obj[Symbol.iterator] = function(){};  //不规则或特殊的属性
    7       console.log(obj);

  • 相关阅读:
    tensorflow 2.0 学习 (十) 拟合与过拟合问题
    tensorflow 2.0 学习 (九) tensorboard可视化功能认识
    tensorflow 2.0 学习 (八) keras模块的认识
    tensorflow 2.0 学习 (七) 反向传播代码逐步实现
    tensorflow 2.0 学习 (六) Himmelblua函数求极值
    tensorflow 2.0 学习 (五)MPG全连接网络训练与测试
    arp协议简单介绍
    Pthread spinlock自旋锁
    线程和进程状态
    内核态(内核空间)和用户态(用户空间)的区别和联系·
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/11992568.html
Copyright © 2011-2022 走看看