• JS之数据类型


    JS数据类型

    大伙好久不见啊,最近笔者整理 JS笔记,先持续更新中!祝大家生活愉快 _ !

    typeof操作符

    JS 的数据类型;通过 typeof来检测,得到的数据类型有:

    string
    number
    boolean
    null
    undefined
    object
    

    Object 是一切数据的基础
    ECMAScript 中有5种简单的数据类型,也称为基本数据类型
    String , Number , Boolean , null , undefined

    一种复杂数据类型,也称为引用数据类型

    Object

    typeof操作符实例:

    console.log(typeof qq);	//undefined,这个变量没有定义,但是不会报错;qq此时是变量;
    console.log(typeof (222));	//number,是一个数字; typeof是操作符而不是方法,所以后面可以加()也可以不加;
    console.log(typeof "222");	//string,是一个字符串
    console.log(typeof false);	//boolean,是一个布尔值
    console.log(typeof {});		//object, 是一个对象
    console.log(typeof null);	//object,是一个对象,在javascript里,null是一个空指针;
    console.log(typeof function(){});	//function,是一个方法,是“可调用对象”,也是属于object类型的;js里万物皆对象
    

    注意:typeof null 的结果是 object!

    从技术上来说,函数在 ECMAScript 中是对象,不是一种数据类型。但是函数拥有一些特殊属性,因此通过 typeof 操作符来区分也是有必要的!

    function fn(b,c){
        console.log(b);
        console.log(c);
    }
    console.log(fn.length) // 2
    

    typeof 的返回值是一个字符串类型的数据

    console.log(typeof typeof qq); //string
    

    变量和数据之间的关系

    JavaScript是一种动态类型语言(dynamically typed language)。这意味着你在声明变量时可以不必指定数据类型,而数据类型会在代码执行时会根据需要自动转换。

    其实,我们可以理解为,变量是没有类型的,只有值才有,变量可以随时持有任何类型的值。

    这在强类型的高级语言中看起来不可思议,暗示 Java=!

    总结

    1. Number (数字类型)

      包含:正数、负数、零、小数、以及特殊的NaN;

      123;
      0.456;
      1.2345e3;
      -99;
      NaN;
      Infinity;

      注意

      NaN == NaN // false
      typeof NaN // number
      // isNaN方法检测一个值是否为有效的数字
      isNaN("abn") // true
      isNaN("12") // false
      
      // paresInt/parseFloat: 将其他的数据类型转换为数字类型。
      parseInt("23px") // 23;
      // parseFloat 可以在 parseInt 的基础上转化小数
      
    2. String

      字符串数据类型,在js中用""或者''包起来的都是字符串;字符串由字符组成,字符的个数就是字符串的长度,每一个字符的位置都可以通过索引来表示;

      var str = 'abcd';
      str[0] // 'a'
      str.substring(0,2); // 'ab'
      
    3. Boolean

      JavaScript把nullundefined0NaN和空字符串视为false,其他值一概视为true

      true
      false

    • 位运算

      true && true

      !true

    • 比较运算符

      2 > 5;
      7==7;
      false == 0;
      false === 0;

      NaN不能直接比较
      isNaN(NaN)

    • 浮点数比较

      Math.abs(1/3-(1-2/3)) < 0.0000001;
      
    1. null 和 undefined
      一般用 null

    2. Object(对象)

      对象中有几种常见的形式;

      {}是对象
      []是数组
      /^$/是正则...
      

      js中规定一个对象的属性名是不可重复的(这句话一定要记住,处理很多事务的时候,经常会用到对象的属性来进行操作;)

      var person = {
          name: 'Bob',
          age: 20,
          tags: ['js','web','mobile'],
          city: 'Beijing'
      }
      

      友情链接

  • 相关阅读:
    zoj 3195 Design the city LCA Tarjan
    hdu 2586 How far away ? 离线LCA
    洛谷 P3379 【模板】最近公共祖先(LCA)Tarjan离线
    codeforces #446 892A Greed 892B Wrath 892C Pride 891B Gluttony
    设计模式(16)---原型模式
    设计模式(15)---享元模式
    设计模式(14)---组合模式
    设计模式(13)---外观模式
    设计模式(12)---适配器模式
    设计模式(11)---代理模式
  • 原文地址:https://www.cnblogs.com/jiaweixie/p/13047203.html
Copyright © 2020-2023  润新知