惠州学院网站建设,无锡网站制作电话,昆明做网站哪家,台州百度关键词排名文章目录一、Number() 转换为整数二、Number.parseInt() 将字符串转换为整数三、Number.parseFloat() 将字符串转换为浮点数四、Boolean() 转换为布尔值五、String() 转换为字符串六、.toString() 转换为字符串最近在巩固 js 的基础知识#xff0c;今天复习到了 js 中的数据类…
文章目录一、Number() 转换为整数二、Number.parseInt() 将字符串转换为整数三、Number.parseFloat() 将字符串转换为浮点数四、Boolean() 转换为布尔值五、String() 转换为字符串六、.toString() 转换为字符串最近在巩固 js 的基础知识今天复习到了 js 中的数据类型转换知识点然后整理一下。
之前整理了一篇隐式类型转换文章js中的隐式类型转换有哪些
一、Number() 转换为整数
转换规则
数字返回自身布尔值true返回1false返回0undefined返回NaNnull返回0字符串 只包含数字则将其转化为十进制包含有效的浮点格式将其转换为浮点数值忽略前导和尾随空格/行终止符 和 - 允许在字符串的开头指示其符号空字符串或仅空格字符串转换为 0如果不是以上格式的字符串返回NaN。 Symbol抛出TypeErrorBigInt返回它的 Number 值并且可能损失精度对象首先按顺序调用 Symbol.toPrimitive方法将 “number” 作为 hint、valueOf() 和 toString() 方法将其转换为原始值。然后将生成的原始值转换为数值。
一元运算符 完全按照上面的数值强制转换规则来转换。
例如
true; // 1
false; // 0
; // 0
0123; // 123example
Number(true); // 1
Number(false); // 0
Number(011); // 11
Number(011abc); // NaN
Number(3.141500); // 3.1415
Number(3.141500abc); // NaN
Number(undefined); // NaN
Number(null); // 0
Number(); // 0
Number( ); // 0
Number(-0x11); // -17
Number(0x11); // 17
Number(Symbol()); // Uncaught TypeError: Cannot convert a Symbol value to a number
Number({}); // NaN
Number([]); // 0二、Number.parseInt() 将字符串转换为整数 Number.parseInt() 方法依据指定基数解析字符串并返回一个整数。 语法 Number.parseInt(string) Number.parseInt(string, radix) radix进制基数
转换规则
被解析的值必须是 string 类型若不是将其强制转换为 string 类型然后再转换为整数字符串开头的空白字符会被忽略第一个非空白字符不能转换为数字则返回NaN如果存在 radix 参数则取值为 [2, 36] 之间的整数否则返回NaN如果 radix 参数未指定或者为0按10进制进行转换如果 radix 参数未指定或者为0且数字以 0x 或 0X 开头按16进制转换。
这个方法和全局的 parseInt() 函数具有一样的函数功能
Number.parseInt parseInt; // trueNumber 添加此方法其目的是对全局变量进行模块化。
example
Number.parseInt(true); // NaN
Number.parseInt(false); // NaN
Number.parseInt(undefined); // NaN
Number.parseInt(null); // NaN
Number.parseInt(); // NaN
Number.parseInt( 3 ); // 3
Number.parseInt(3.141590ab ); // 3
Number.parseInt( d3.14159); // NaN
Number.parseInt(-0x11); // -17
Number.parseInt(0x11); // 17
Number.parseInt(0x11, 0); // 17
Number.parseInt(0x11, 1); // NaN
Number.parseInt(0x11, 2); // 0
Number.parseInt(0x11, 16); // 17
Number.parseInt(0x11, 37); // NaN
Number.parseInt(123, 0); // 123
Number.parseInt(123, 8); // 83
Number.parseInt(123, 37); // NaN
Number.parseInt({}); // NaN
Number.parseInt([]); // NaN
Number.parseInt(Symbol()); // Uncaught TypeError: Cannot convert a Symbol value to a string
Number.parseInt(900719925474099267n); // 900719925474099300 丢失精度
Number.parseInt(900719925474099267n); // 900719925474099300 丢失精度三、Number.parseFloat() 将字符串转换为浮点数 Number.parseFloat() 方法可以把一个字符串解析成浮点数。 语法 Number.parseFloat(string) 转换规则
如果 parseFloat 在解析过程中遇到了正号、负号- U002D HYPHEN-MINUS、数字0-9、小数点.、或者科学记数法中的指数e 或 E以外的字符则它会忽略该字符以及之后的所有字符返回当前已经解析到的浮点数第二个小数点的出现也会使解析停止在这之前的字符都会被解析参数首位和末位的空白符会被忽略如果参数字符串的第一个字符不能被解析成为数字则返回NaNparseFloat 也可以解析并返回 Infinity。parseFloat 解析 BigInt 为 Numbers, 丢失精度。因为末位 n 字符被丢弃。parseFloat 也可以转换一个已经定义了 toString 或者 valueOf 方法的对象它返回的值和在调用该方法的结果上调用 parseFloat 值相同。
这个方法和全局的 parseFloat() 函数具有一样的函数功能
Number.parseFloat parseFloat; // trueNumber 添加此方法其目的是对全局变量进行模块化。
example
Number.parseFloat(3.14); // 3.14
Number.parseFloat(3.14); // 3.14
Number.parseFloat( 3.14 ); // 3.14
Number.parseFloat(314e-2); // 3.14
Number.parseFloat(0.0314E2); // 3.14
Number.parseFloat(3.14some non-digit characters); // 3.14
Number.parseFloat({ toString: function() { return 3.14 } }); // 3.14
Number.parseFloat({ valueOf : function() { return 3.14 } }); // NaN
Number.parseFloat(asc3.14); // NaN
Number.parseFloat(900719925474099267n); // 900719925474099300 丢失精度
Number.parseFloat(900719925474099267n); // 900719925474099300 丢失精度四、Boolean() 转换为布尔值 Boolean 对象是一个布尔值的对象包装器。 转换规则
Boolean() 初始值为 false 参数值为 0、-0、null、false、NaN、undefined或空字符串转换为 false。所有其它值包括任何对象空数组[]或字符串 false都会创建一个初始值为 true 的对象。
另一种使用方式是 双重非!!运算符与 Boolean() 规则一致。
example
Boolean(); // false
Boolean(0); // false
Boolean(0); // true
Boolean(-0); // false
Boolean(null); // false
Boolean(false); // false
Boolean(false); // true
Boolean(NaN); // false
Boolean(undefined); // false
Boolean(); // false
Boolean(123); // true
Boolean(123); // true
Boolean( ); // true
Boolean({}); // true
Boolean([]); // true注意 Boolean 对象的值与基本数据类型中的 true 和 false 不同。
const bool new Boolean(false);
if (bool) {// 代码被执行了
}
console.log(bool); // Boolean {false}
console.log(!!bool); // true上面使用 Boolean 构造函数生成了一个 bool 实例对象虽然 Boolean 的初始值为 false 但实例对象 bool 的值为 true所以if 语句会被执行。使用基本数据类型就不会有上面的情况
const bool false;
if (bool) {// 代码不被执行
}五、String() 转换为字符串 String 对象用于表示和操作字符序列。 转换规则
字符串按原样返回true、false、null、undefined 都可以转换成字符串使用与 toString(10) 相同的算法转换数字默认转换为十进制使用与 toString(10) 相同的算法转换 BigIntSymbol 隐式转换会抛出 TypeError显示转换则为字符串对象通过次序调用 Symbol.toPrimitive方法将 “number” 作为 hint、toString() 和 valueOf() 方法将其转换为原始值。然后将生成的原始值转换为数值。
example
String(like); // like
String(true); // true
String(false); // false
String(null); // null
String(undefined); // undefined
String(10); // 10
String(900719925474099267n); // 900719925474099267
String(Symbol()); // Symbol()
Symbol(foo) bar; // Uncaught TypeError: Cannot convert a Symbol value to a string 隐式类型转换报错
String({}); // [object Object]
String([]); // 六、.toString() 转换为字符串
大多数 JavaScript 对象和原始值都有一个 toString() 方法将值转换为字符串例如字符串、数字、布尔、BigInts 和符号除了 null 和 undefined。
对象的 toString() 方法返回的是当前数据类型的字符串如,将一个对象转换为字符串格式为 [object Object]将数组转换为字符串格式为[object Array]首字母小写object为固定格式首字母大写Object为数据类型。
有时候为了准确判断数据类型会使用Object.prototype.toString.call()来进行转换判断。
Object.prototype.toString.call([]); // [object Array]
Object.prototype.toString.call(123); // [object String]
Object.prototype.toString.call(true); // [object Boolean]
Object.prototype.toString.call(function(){}); // [object Function]
Object.prototype.toString.call(null); // [object Null]
Object.prototype.toString.call(undefined); // [object Undefined]
Object.prototype.toString.call(Symbol()); // [object Symbol]
...转换规则
除null、undefined外其他基本数据类型按照正常规则转换不能转换null、undefined报错 TypeError因为没有 toString 方法对象转换为 [object Type] 格式数组与使用 join() 方法相同转换为元素拼接成的字符串空数组转换为空字符串。
当调用Number.prototype.toString()时语法 numObj.toString([radix]) radix 指定要用于数字到字符串的转换的基数 [2, 36]。如果未指定 radix 参数则默认值为 10十进制。 let num 100;
num.toString(); // 100 默认按照10进制转换
num.toString(2); // 1100100
num.toString(8); // 144
num.toString(10); // 100
num.toString(16); // 64Number.prototype.toString() 与 Number.parseInt() 可以在字符串与数字值之间按照不同进制相互转换。
如将上面的字符串按照不同进制转换为数字
Number.parseInt(100); // 100
Number.parseInt(1100100,2); // 100
Number.parseInt(144,8); // 100
Number.parseInt(100,10); // 100
Number.parseInt(64,16); // 100example:
[].toString(); //
({}).toString(); // [object Object]
(123).toString(); // 123
(true).toString(); // true
(false).toString(); // false
(null).toString(); // Uncaught TypeError: Cannot read properties of null (reading toString)
(undefined).toString(); // Uncaught TypeError: Cannot read properties of undefined (reading toString)
Symbol().toString(); // Symbol()
(900719925474099267n).toString(); // 900719925474099267
文章转载自: http://www.morning.bnxfj.cn.gov.cn.bnxfj.cn http://www.morning.jrplk.cn.gov.cn.jrplk.cn http://www.morning.bryyb.cn.gov.cn.bryyb.cn http://www.morning.jwfkk.cn.gov.cn.jwfkk.cn http://www.morning.ssjee.cn.gov.cn.ssjee.cn http://www.morning.qtwd.cn.gov.cn.qtwd.cn http://www.morning.nlywq.cn.gov.cn.nlywq.cn http://www.morning.tfgkq.cn.gov.cn.tfgkq.cn http://www.morning.wcgfy.cn.gov.cn.wcgfy.cn http://www.morning.sfnjr.cn.gov.cn.sfnjr.cn http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn http://www.morning.gllhx.cn.gov.cn.gllhx.cn http://www.morning.plqqn.cn.gov.cn.plqqn.cn http://www.morning.bqts.cn.gov.cn.bqts.cn http://www.morning.fhcwm.cn.gov.cn.fhcwm.cn http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn http://www.morning.gpsrk.cn.gov.cn.gpsrk.cn http://www.morning.kycxb.cn.gov.cn.kycxb.cn http://www.morning.skcmt.cn.gov.cn.skcmt.cn http://www.morning.brld.cn.gov.cn.brld.cn http://www.morning.mkzdp.cn.gov.cn.mkzdp.cn http://www.morning.fdfdz.cn.gov.cn.fdfdz.cn http://www.morning.nqpy.cn.gov.cn.nqpy.cn http://www.morning.cxnyg.cn.gov.cn.cxnyg.cn http://www.morning.ktmbr.cn.gov.cn.ktmbr.cn http://www.morning.zzgkk.cn.gov.cn.zzgkk.cn http://www.morning.zpjhh.cn.gov.cn.zpjhh.cn http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn http://www.morning.rttxx.cn.gov.cn.rttxx.cn http://www.morning.rcfwr.cn.gov.cn.rcfwr.cn http://www.morning.lpgw.cn.gov.cn.lpgw.cn http://www.morning.liyixun.com.gov.cn.liyixun.com http://www.morning.bxrlt.cn.gov.cn.bxrlt.cn http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.mfmx.cn.gov.cn.mfmx.cn http://www.morning.smhtg.cn.gov.cn.smhtg.cn http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn http://www.morning.nrfrd.cn.gov.cn.nrfrd.cn http://www.morning.zmyhn.cn.gov.cn.zmyhn.cn http://www.morning.pqchr.cn.gov.cn.pqchr.cn http://www.morning.xuejitest.com.gov.cn.xuejitest.com http://www.morning.hfbtt.cn.gov.cn.hfbtt.cn http://www.morning.mcjyair.com.gov.cn.mcjyair.com http://www.morning.nxfwf.cn.gov.cn.nxfwf.cn http://www.morning.qmkyp.cn.gov.cn.qmkyp.cn http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn http://www.morning.dbbcq.cn.gov.cn.dbbcq.cn http://www.morning.cbnjt.cn.gov.cn.cbnjt.cn http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn http://www.morning.qxmpp.cn.gov.cn.qxmpp.cn http://www.morning.xfdkh.cn.gov.cn.xfdkh.cn http://www.morning.fsnhz.cn.gov.cn.fsnhz.cn http://www.morning.wjrq.cn.gov.cn.wjrq.cn http://www.morning.dtgjt.cn.gov.cn.dtgjt.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.lctrz.cn.gov.cn.lctrz.cn http://www.morning.nqgds.cn.gov.cn.nqgds.cn http://www.morning.tpnxj.cn.gov.cn.tpnxj.cn http://www.morning.qgwpx.cn.gov.cn.qgwpx.cn http://www.morning.ftlgy.cn.gov.cn.ftlgy.cn http://www.morning.jqmqf.cn.gov.cn.jqmqf.cn http://www.morning.dhmll.cn.gov.cn.dhmll.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.pqcbx.cn.gov.cn.pqcbx.cn http://www.morning.ndynz.cn.gov.cn.ndynz.cn http://www.morning.pcgmw.cn.gov.cn.pcgmw.cn http://www.morning.bqrd.cn.gov.cn.bqrd.cn http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.qqpg.cn.gov.cn.qqpg.cn http://www.morning.rrms.cn.gov.cn.rrms.cn http://www.morning.rjnrf.cn.gov.cn.rjnrf.cn http://www.morning.dmwbs.cn.gov.cn.dmwbs.cn http://www.morning.hdzty.cn.gov.cn.hdzty.cn http://www.morning.htbsk.cn.gov.cn.htbsk.cn http://www.morning.gryzk.cn.gov.cn.gryzk.cn http://www.morning.mwlxk.cn.gov.cn.mwlxk.cn http://www.morning.byywt.cn.gov.cn.byywt.cn http://www.morning.ssjee.cn.gov.cn.ssjee.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn