JavaScript中心语法——数据类型

数据范例

1.数据范例的概述;
在JavaScript代码中,能够示意而且操纵值的范例就叫做数据范例
数据范例能够分红可变范例和不可变范例,可变范例的值是能够修正的。相反不可变范例的值是不能够修正的。
数据范例另有原始范例(原始值)与援用范例(内置对象)
而原始乐行还分为原始范例和特别范例,援用范例分为包装范例与援用范例
原始范例是直接代表JavaScript言语完成的最底层的数据。
原始范例离别有boolean范例、number范例和string范例三种。

2.number范例;整数和浮点数,JavaScript不辨别整数和浮点数
number范例中的小数,在盘算时能够涌现偏差
1.并非一切的小数盘算都邑涌现偏差
2.小数盘算时要注意效果是不是涌现偏差
3.经由过程数字之的换算,将其转换成整数举行盘算,再把效果换算成小数。
number范例中存在一个特别的值叫NaN。
NaN示意当前的值不是一个数字值、但依旧是number范例,
它与任何值包含自身都不相称

3.string范例 – JavaScript的字符串就是由单引号或双引号包裹
在JavaScript中单引号和双引号是没有区分的——发起运用单引号

string范例 – 文本自身须要单引号或双引号时
1.假如须要的是双引号,字符串只能运用单引号
2.假如须要的是单引号,字符串只能运用共赢好

var str3 = '"wolongxueyuan"wuwenjia';
console.log(str3);

var str4 = "'wolongxueyuan'wuwenjia";
console.log(str4);

4.boolean范例
这个属性有两个值;true和false
因为JavaScript是辨别大小写的,boolean范例的teue和false全部是小写。
JavaScript也能够把其他范例的数据自动转换为boolean范例

5.typeof运算符

var num = 100;
var boo = true;
var str = 'wuwenjia';

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
typeof运算符推断原始范例
语法结构——typeof变量称号。
效果——原始范例的称号(string范例)

6.instanceof运算符

var str = new String('wuwenjia');
var num = new Number(100);
var boo = new Boolean(true);
// typeof运算符只能推断原始范例
console.log(typeof str);// object
console.log(typeof num);// object
console.log(typeof boo);// object
// instanceof运算符用于推断援用范例(包装范例)
console.log(str instanceof String);// true

typeof运算符和instanceof运算符的区分
typeof运算符

  1.用于推断原始范例
  2.语法结构差别——typeof 变量称号
  3.获得效果差别——原始范例的称号

instanceof运算符

  1.用于推断援用范例(包装范例)
  2.语法结构差别——变量称号 instanceof 援用范例称号
  3.获得效果差别——布尔范例的值(true或false)

7.隐式3范例转换
因为JavaScript是弱范例/松懈型的,在任何状况下都能够强迫转换

var result3 = +str;
console.log(result3);// NaN
console.log(typeof result3);// number
var result4 = +boo;
console.log(result4);// true为1,false为0
console.log(typeof result4);// number

转换为number范例

   string范例转换为number范例
     假如文本内容是一般的文本(非数字) -> 转换后的效果为 NaN
     假如文本内容是数字值 -> 转换后的效果为对应数字值
   boolean范例转换为number范例
     true转换为1
     false转换为0
var result5 = !!str;
console.log(result5);// true
console.log(typeof result5);// boolean
var result6 = !!num;
console.log(result6);// true
console.log(typeof result6);// boolean

转换为boolean范例

 string范例转换为boolean范例
   空字符串(''或"")转换后的效果为false,其他状况都为true
 number范例转换为boolean范例
  0或NaN转换后的效果为false,其他状况都为true
 undefined或null转换后的效果为false

8.显现范例转换
转换为string范例

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

转换为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

转换为boolean范例

  Boolean()函数 -> Boolean(值)
var result8 = Boolean(str);
console.log(result8);// true

隐式范例转换与显式范例转换的区分:

 隐式范例转换
 -长处 - 机能好
- 瑕玷 - 可读性差
 显式范例转换
 -长处 - 可读性高
 -瑕玷 - 机能差

  

     
    
    原文作者:武文佳
    原文地址: https://segmentfault.com/a/1190000015908251
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞