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'
    }
    

    友情链接

原文地址:https://www.cnblogs.com/jiaweixie/p/13047203.html