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
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞