js数据类型

更新日期: 2019-07-27阅读: 2k标签: 类型

数据类型指的就是字面量的类型。 js有6种数据类型:String 字符串、Number 数值、 Boolean 布尔值、Null 空值、Undefined 未定义、Object 对象。


基本数据类型

一、String

// 用引号括起来,单引号和双引号都可以,但是不能混搭。
var a = 'hello';
var b = "world";

// 错误示例
var c = 'hello";

另:转义符号

/**

 \" 表示 "
 \' 表示 '
 \n 表示 换行
 \t 表示 制表符
 \\ 表示 \
 
 **/
 var str = '我说:"今天的天气不错!"';
 str = "我说:\"今天的天气不错!\"";
 
 // 错误示例
 str = "我说:"今天的天气不错!""

二、Number

/**
    在js中所有数值都是Number类型,包括整数和浮点数
**/
var a = 123;
var b = 123.456;
// 可以使用typeof来检查一个变量的类型
console.log(typeof a); // number

var c = "123";
console.log(typeof c); // string

var d = Number.MAX_VALUE;
console.log(d); // 1.7976931348623157e+308
console.log(typeof d); // number

//如果数值超过最大值,则返回Infinity。
console.log(d * d); //Infinity
// 错误示例
console.log(typeof d*d); // NaN
// 正确示例
cosole.log(typeof (d*d)); // number

//如果小于一个最小值,则返回-Inifinity。
console.log(-Number.MAX_VALUE * Number.MAX_VALUE);

a = "abc" * "bcd";  
console.log(typeof a); // NaN NaN是一个特殊的数字,表示的是Not a Number

a = Infinity;
console.log(typeof a); // number

a = NaN ;
console.log(typeof a); // number

a = Number.MIN_VALUE; 
console.log(a); //5e-234  0以上的最小值,并不是Number取值的最小值
注意:在js中的整数的基本运算基本可以保证精确,但是可能会出现不精确的情况,因为在2进制中不能表示1/10。所以千万不要使用js进行对精确度要求比较高的运算。  

三、Boolean

// Boolean的布尔值只有两个,一个是true,一个是false
var bool = true;
console.log(bool); // true
console.log(typeof bool); // boolean

四、Null

// Null类型的值只有一个,就是 null,专门表示为一个空的对象
var a = null ;
console.log(a);
console.log(typeof a); // object

五、Undefined

// Undefined 类型的值只有一个,就是 undefined
var b;
console.log(b); //undefined 表示未定义,声明了未赋值
console.log(typeof b); // undefined

强制类型转换

强制类型转换,指的是将一个数据类型强制转换成其他的数据类型。类型转换主要指将其他的数据类型转换为String Number Boolean  

一、将其他数据类型转换成String

方式一:调用被转换数据类型的toString()方法,该方法不会影响到原变量。但是注意,null 和undefined 这两个值没有toString()方法。
var a = 123;
a = a.toString(); // "123"

var b = false
b = b.toString(); // "false"

var c = null
c = c.toString(); // 会报错

var d = undefined
d = d.toString(); // 会报错

方式二:调用String()函数,并将被转换的数据作为参数传递给函数,该函数不会影响到原变量,对于Number和Boolean实际上就是调用的toString()方法,对于null直接转换为“null”,将undefined直接转换为"undefined"。

var a = 123;
a = String(a); // "123"

var b = false
b = String(b); // "false"

var c = null
c = String(c); // "null"

var d = undefined
d = String(d); // "undefined"

二、将其他数据类型转换成Number

方式一:使用Number函数

字符串转数值。
1.如果是纯数字的字符串,直接转换成数字。
2.如果字符串中有非数字的内容,则转换为NaN。
3.如果是空字符串或者全是空格的字符,则转换为0

  • 布尔值转数值,true转换为1,false转换为0.
  • null转数值,转换为0
  • undefined转数值,转换为NaN

方式二:专门用来对付字符串

  • parseInt() 把一个字符串转换为一个整数
  • parseFloat() 把一个字符串转换为一个浮点数
var a = "123";
console.log(a); // "123"
console.log(typeof a); // string

a = Number(a); // number
var str = 'hello';
str = Number(str); // number NaN

a = "123px";
// parseInt可以将字符串中有效的整数取出来,再转换为Number
a = parseInt(a);

a = 'b1234ddd';
a = parseInt(a); // NaN

a = '123.456px';
a = parseFloat(a); // 123.456 

a = '123px';
a = parseFloat(a); // 123

// 如果对非String使用parseInt()和parseFloat(),它会先将其转换为String,然后再操作。
a = true;
a = parseInt(a); // NaN
// 等同于
a = parseInt("true");

a = 198.23;
a = parseInt(a); // 198

// 在js中,如果需要表示16进制的数字,则需要以0x开头
// 如果需要表示8进制的,则需要以0开头
// 如果要表示2进制数字,则需要以0b开头,但不是所有浏览器都支持。
a = 0x10;  // 16进制 16
a = 0xff; // 16进制 255

a = 070; // 8进制 56

a = "070"; //这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
a = parseInt(a, 10); //可以传递第二个参数,来指定数字的进制

三、将其他数据类型转换成Boolean

使用Boolean()函数
  • Number:除了0和NaN,其余都是true
  • String: 除了空串,其余都是true
  • null和undefined都会转换为false
  • 对象都会转换为true
var a = 123;

a = Boolean(a); // true

a = -123;
a = Boolean(a); // true

a = Infinity;
a = Boolean(a); // true

a = 0;
a = Boolean(a); // false

a = NaN;
a = Boolean(a); // true

a = 'true';
a = Boolean(a); // true

a = ''
a = Boolean(a); // false

a = '  '
a = Boolean(a); // true

a = null
a = Boolean(a); // false

a = undefined
a = Boolean(a); // false

链接: https://fly63.com/article/detial/4964

JS中Null与Undefined的区别

在JavaScript中存在这样两种原始类型:Null与Undefined。这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。

Javascript的类型检测

主要介绍了JS中检测数据类型的几种方式,typeof运算符用于判断对象的类型,但是对于一些创建的对象,它们都会返回\'object\',有时我们需要判断该实例是否为某个对象的实例,那么这个时候需要用到instanceof运算符

js类型转换的各种玩法

对于object和number、string、boolean之间的转换关系,ToPrimitive是指转换为js内部的原始值,如果是非原始值则转为原始值,调用valueOf()和toString()来实现。

JavaScript类型:关于类型,有哪些你不知道的细节?

Undefined类型表示未定义,它的类型只有一个值为undefined。undefined和null有一定的表意差别。非整数的Number类型无法使用 == 或 === 来比较,因为 JS 是弱类型语言,所以类型转换发生非常频繁

为你的 JavaScript 项目添加智能提示和类型检查

近在做项目代码重构,其中有一个要求是为代码添加智能提示和类型检查。智能提示,英文为 IntelliSense,能为开发者提供代码智能补全、悬浮提示、跳转定义等功能,帮助其正确并且快速完成编码。

js的类型

基本类型:按值访问,可以操作保存在变量中实际的值;引用类型数据存在堆内存,而引用存在栈区,也就是说引用类型同时保存在栈区和堆区,关于==的执行机制,ECMASript有规范,因为==前后的值交换顺序,返回的值也是一样的,所以在此对规范做出如下总结

再也不用担心 JavaScript 的数据类型转换了

JavaScript 是一种弱类型或者说动态类型语言。所以你不用提前声明变量的类型,在程序运行时,类型会被自动确定,你也可以使用同一个变量保存不同类型的数据。

JavaScript基础之值传递和引用传递

js的值传递和引用(地址)传递:js的5种基本数据类型 number,string,null,undefined,boolean 在赋值传递时是值传递,js的引用数据类型(object,array,function)进行引用传递,其实底层都是对象。

JS中的布尔 数字 字符串

JS中所有的值都可以转换成布尔类型 使用Boolean()或者 !!(两个感叹号),JS中所有的值都可以转换成数字类型,使用Number()或+。数字类型转换场景目的只有一个,用于计算,将后台传递的数据,从字符串转换为数字并参与计算

if条件中,js的强制类型转换

众所周知,JS在很多情况下会进行强制类型转换,其中,最常见两种是:1.使用非严格相等进行比较,对==左边的值进行类型转换2.在if判断时,括号内的值进行类型转换,转化为布尔值

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!