JavaScript中心属性-数据类型

原始范例

原始范例,又称原始值,是直接代表JavaScript言语完成的最底层数据。
原始范例分为 boolean范例、number范例、string范例三种。
声明变量并初始化值为原始范例,平常称之为字面量体式格局定义变量,或直接量体式格局定义变量。

number范例

number范例包括整数范例和浮点范例

  • 整数范例:包括负整数、0、正整数。
  • 浮点范例:示意包括小数部份。浮点范例所占的空间是整数范例的两倍。
var num1 = 0.1;
console.log(num1);
/* 浮点范例 - '.1'示意'0.1'的寄义 -> 不引荐 */
var num2 = .1;
console.log(num2);

var num3 = 10.1;
console.log(num3);
/* 浮点范例 - '.0'示意为整数 */
var num4 = 10.0;
console.log(num4);
/* 浮点范例 - '.'示意为整数 */
var num5 = 10.;
console.log(num5);

浮点范例的盘算偏差

因为小数部份只能示意有限的个数,在四舍五入的历程中有能够涌现偏差。

/*
    number范例中的小数,在盘算时能够涌现偏差
    * 并非一切的小数盘算都涌现偏差
    * 小数的盘算时,注重效果是不是涌现偏差
      * 经由过程数字值的换算,将其转换成整数举行盘算,再将效果换算为小数
 */
var x = 0.3;
var y = 0.2;
console.log(x - y);// 0.1

NaN

NaN(Not a Number),非数值,是一个特别的数值。

  • NaN与任和值都不相称,包括NaN自身
  • 任何触及NaN的操纵都邑返回NaN
var num = Number('化物语');//将string范例转换成number范例
console.log(num)//NaN   这个值不是一个数字
console.log(typeof num)//number   这是一个number范例

string范例

/*
* string范例的值用单引号或双引号包裹
* 值的内容可所以一切字符
* string范例 - 文本自身须要单引号或双引号时
    1.假如须要的是双引号,字符串只能运用单引号
    2.假如须要的是单引号,字符串只能运用共赢好*/

var str1 = '化物语'
console.log(str1)

var str2 = "化物语"
console.log(str2)

boolean范例

布尔范例是指真假、开关、是不是,它的值只要ture和false

  • ture和false都是小写
var boo = true
console.log(boo);//true

typeof运算符

因为JavaScritp是弱范例的,所以须要一种手腕检测给定变量的数据范例。typeof就是用来检测数据范例

  • typeof运算符推断原始范例的数据范例
var boo = true;
var str = '化物语';

console.log(typeof num);// number
console.log(typeof boo);// boolean
console.log(typeof str);// string

var result = typeof num;
console.log(result);// number
console.log(typeof result);// string

包装范例

在JavaScript中是辨别大小写的,写法上,原始范例悉数小写,包装范例悉数大写。
平常不发起用包装范例定义对应的数据范例,单包装范例供应了操纵响应值的要领

/*
    经由过程包装范例建立一个数字值范例的变量
    * var 变量称号 = new Number(数字值)
      * new Number() -> 建立了一个Number范例的对象
    * 以下两种体式格局建立的数字值,在运用上没有任何区分
 */
/* 组织函数体式格局 */
var num1 = new Number(100);
console.log(num1);/* [Number: 100] */
/* 字面量/直接量体式格局 */
var num2 = 100;
console.log(num2);/* 100 */

console.log(typeof num2);// number
console.log(typeof num1);// object(对象)

var str1 = new String('化物语');
console.log(str1);

var str2 = '化物语';
console.log(str2);

var boo1 = new Boolean(true);
console.log(boo1);

var boo2 = true;
console.log(boo2);

instanceof运算符

相对于typeof运算符只能测试原始范例数据的范例,instanceof运算符能够推断包装范例(援用范例)

var str = new String('卧龙学苑');
var num = new Number(100);
var boo = new Boolean(true);
// instanceof运算符用于推断援用范例(包装范例)
console.log(str instanceof String);// true
/*
    typeof运算符与instanceof运算符的区分
    * typeof运算符
      1.用于推断原始范例
      2.语法结构差别 -> typeof 变量称号
      3.获得效果差别 -> 原始范例的称号
    * instanceof运算符
      1.用于推断援用范例(包装范例)
      2.语法结构差别 -> 变量称号 instanceof 援用范例称号
      3.获得效果差别 -> 布尔范例的值(true或false)
 */

undefined

undefined示意空的数据范例,他只要一个值,就是undefined

* 假如一个变量的值即是undefined -> 变量是存在的,但没有值
    * undefined范例中只存在一个值(undefined)
    获得undefined值的状况以下:
    1.定义变量时,只声明,而不初始化值 -> undefined
    2.定义变量时,初始化值为 undefined -> undefined
    注重 - 获得undefined值的状况不止以上两种
 */
var v;
console.log(v);

var c = undefined;
console.log(c);

console.log(typeof v);// undefined - 范例称号

null

示意一个不在质量任何内存空间地点的变量,多用于开释内存
null范例只存在一个值null

var v = null;
console.log(v);// null

范例转换

隐式范例装换

因为JavaScript是弱范例/松懈范例的,在任何状况下都能够强迫转换。

var num =100;
var str ='化物语';
var boo =true;

//转换为number范例
var result1 = +str;
console.log(typeof result1);//number
var result2 = +true;
console.log(typeof result2);//number

//转换为string范例
var result3 = '' + num
console.log(typeof result3)//string
var result4 ='' + boo
console.log(typeof result4)//string

//转换为boolean范例
var result5 = !!num
console.log(typeof result5)//boolean
var result6 = !!str
console.log(typeof result6)//boolean

显现范例转换

// 定义number范例、string范例以及boolean范例的变量
var num = 100;
var str = '化物语';
var str1 = '100';
var str2 = '100.7'
var boo = false;

/*
    1.转换为string范例
      * String()函数 -> String(值)
      * toString()要领 -> 变量名.toString()
        * 对象的要领 -> 将变量看成是一个对象来运用
  */
var result1 = String(num);
console.log(typeof result1);// string
var result2 = num.toString();
console.log(typeof result2);// string

/*
    2.转换为number范例
      * Number()函数 -> Number(值)
      * parseInt()函数 -> parseInt(值)
        * 转换为number范例,转换为一个整数
      * parseFloat()函数 -> parseFloat(值)
        * 转换为number范例,转换为一个浮点数
  */
var result3 = Number(boo);
console.log(typeof result3);// number

var result4 = parseInt(str1);
console.log(typeof result4);// 100
var result5 = parseFloat(str1);// 100
console.log(result5);// 100

var result6 = parseInt(str2);// 100.1
console.log(result6);// 假如当前值为小数的话,parseInt()后取整数部份 - 100
var result7 = parseFloat(str2);// 100.1
console.log(result7);// 100.1

/*
    3.转换为boolean范例
      * Boolean()函数 -> Boolean(值)
  */
var result8 = Boolean(str);
console.log(result8);// true
    原文作者:李威振
    原文地址: https://segmentfault.com/a/1190000015924525
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞