博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js数据类型
阅读量:5224 次
发布时间:2019-06-14

本文共 3631 字,大约阅读时间需要 12 分钟。

数据类型

数据类型指的就是字面量的类型。

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); // numbervar c = "123";console.log(typeof c); // stringvar d = Number.MAX_VALUE; // 最大数值 d = 1.7976931348623157e+308console.log(typeof d); // number//如果数值超过数值能表示的最大值,则返回Infinity。console.log(d * d); //Infinity// 错误示例console.log(typeof d*d); // NaN// 正确示例(需要括号)console.log(typeof (d*d)); // number//如果小于数值能表示的最小值,则返回-Inifinity。console.log(-Number.MAX_VALUE * Number.MAX_VALUE); //-Infinitya = "abc" * "bcd";  console.log(typeof a); // NaN NaN是一个特殊的数字,表示的是Not a Numbera = Infinity;console.log(typeof a); // numbera = NaN ;console.log(typeof a); // numbera = Number.MIN_VALUE; console.log(a); //5e-234  正数中能表示的最小值,并不是Number取值的最小值

注意:在js中的整数的基本运算基本可以保证精确,但是可能会出现不精确的情况,因为在2进制中不能表示1/10。所以千万不要使用js进行对精确度要求比较高的运算。

三、Boolean
// Boolean的布尔值只有两个,一个是true,一个是falsevar bool = true;console.log(bool); // trueconsole.log(typeof bool); // boolean
四、Null
// Null类型的值只有一个,就是 null,专门用来表示为一个空的对象var a = null ;console.log(a); // nullconsole.log(typeof a); // object
五、Undefined
// Undefined 类型的值只有一个,就是 undefinedvar 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 = falseb = b.toString(); // "false"var c = nullc = c.toString(); // 会报错var d = undefinedd = d.toString(); // 会报错
方式二:调用String()函数,并将被转换的变量作为参数传递给函数,该函数不会改变原变量,对于Number和Boolean实际上就是调用的toString()方法,对于null直接转换为“null”,将undefined直接转换为"undefined"。
var a = 123;a = String(a); // "123"var b = falseb = String(b); // "false"var c = nullc = String(c); // "null"var d = undefinedd = 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); // stringa = Number(a); // number 123var str = 'hello';str = Number(str); // number NaNa = "123px";// parseInt可以将字符串中有效的整数取出来,再转换为Numbera = parseInt(a); // 123a = 'b1234ddd';a = parseInt(a); // NaNa = '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进制 16a = 0xff; // 16进制 255a = 070; // 8进制 56a = "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); // truea = -123;a = Boolean(a); // truea = Infinity;a = Boolean(a); // truea = 0;a = Boolean(a); // falsea = NaN;a = Boolean(a); // falsea = 'true';a = Boolean(a); // truea = ''a = Boolean(a); // falsea = '  'a = Boolean(a); // truea = nulla = Boolean(a); // falsea = undefineda = Boolean(a); // false

转载于:https://www.cnblogs.com/tumo/p/11420422.html

你可能感兴趣的文章
异步消息处理机制 简析
查看>>
机器学习实践测试驱动的开发方法pdf
查看>>
memset函数使用详解
查看>>
C# 使用CsvHelper读取.csv文件
查看>>
软工小队第二次会议 4-23
查看>>
面向对象六大设计原则:
查看>>
sky1301测试总结 just before chip comes back
查看>>
10.1、LNMT架构
查看>>
React Native 错误:A problem occurred configuring project ':app'. 和Execution failed for task ‘XXX’...
查看>>
arcgis JavaScript 加载 mapbox地图
查看>>
【NOIP2018模拟11.01】树
查看>>
12.4站立会议
查看>>
Lesson 19 Sold out
查看>>
第四次作业
查看>>
sqlserver之on与where条件
查看>>
二维树状数组模板
查看>>
poj1087最小割
查看>>
configparse模块 | 文件配置 | Python (转载)
查看>>
C++中四种显示类型转换总结
查看>>
java线程池原理
查看>>