javascript怎么进行强制类型转换

强制转换方法:1、使用ToString()、ToNumber()或ToBoolean()方法;2、使用String()、Number()或Boolean()方法;3、使用“+”或“-”运算符;4、使用“if()”、“while()”等语句。

javascript怎么进行强制类型转换

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

一、类型转换规则

1.ToString

对于普通对象来说,除非自行定义toString方法,否则就会调用Object.prototype.toString()方法,如果对象有自己的toString方法,字符串化就会调用该方法并使用其返回值。

2.ToNumber

立即学习“Java免费学习笔记(深入)”;

对于基本类型其中true转换为1,false转换为0;undefined 转换为 NaN,null 转换为 0。对于对象类型会首先转换成为基本类型值如果返回的是非数字的基本类型值,则再遵循基本类型转换规则将其强制转换为数字。为了将值转换为相应的基本类型值,抽象操作ToPrimitive会首先检查该值是否有 valueOf() 方法。如果有并且返回基本类型值,再使用该值进行强制类型转换。如果没有就使用 toString() 的返回值(如果存在)来进行强制类型转换。如果 valueOf() 和 toString() 均不返回基本类型值,会产生 TypeError 错误。

let a = {    valueOf:function(){        return "42";    }};let b = {    toString:function(){        return "42";    }};let c = [4,2];c.toString = function(){    return this.join(""); //"42"};Number(a);     //42Number(b);     //42Number(c);     //42Number('');    //0Number([]);    //0Number(["abc"];//NaN

登录后复制

3.ToBoolean

JavaScript中的值可以分为能被强制转换为false的值和能被强制转换为true的值两类。
假值:

undefinednullfalse+0、-0、NaN””

真值:除了以上列表的都可以理解为是真值,所有对象都是真值

let a1 = new Boolean( false );let b1 = new Number( 0 );let c1 = new String( "" );let d1 = Boolean(a1 && b1 && c1); //truelet a2 = [];let b2 = {};let c2 = function(){};let d2 = Boolean(a2 && b2 && c2); //true

登录后复制

二、显示强制类型转换

1.字符串与数字之间的显示转换

字符串和数字之间的转换是通过 String(..)Number(..) 这两个内建函数。
除了 String(..) 和 Number(..) 以外,还有其他方法可以实现字符串和数字之间的显式 转换:

let a = 42;let b = a.toString();let c = "3.14";let d = +c;b; // "42"d; // 3.14

登录后复制

a.toString() 是显式的,不过其中涉及隐式转换。因为 toString() 对 42 这样的基本类型值不适用,所以 JavaScript 引擎会自动为 42 创建一个封装对象,然后对该对象调用 toString()。这里显式转换中含有隐式转换。

2.显示转换为布尔值

let a = "0";let b = [];let c = {};let d = "";let e = 0;let f = null;let g;Boolean( a ); // trueBoolean( b ); // trueBoolean( c ); // trueBoolean( d ); // falseBoolean( e ); // falseBoolean( f ); // falseBoolean( g ); // false

登录后复制

虽然 Boolean(..) 是显式的,但并不常用。显式强制类型转换为布尔值最常用的方法是 !!

let a = "0";let b = [];let c = {};let d = "";let e = 0;let f = null;let g;!!a; // true!!b; // true!!c; // true!!d; // false!!e; // false!!f; // false!!g; // false

登录后复制

【推荐学习:javascript高级教程】

三、隐式强制类型转换

1.字符串和数字之间的隐式强制类型转换

(1)+运算符

即能用于数字加法,也能用于字符串拼接

如果 + 的其中一个操作数是字符串(或者通过对其调用 ToPrimitive 抽象操作得到字符串), 则执行字符串拼接;否则执行数字加法。因为数组的 valueOf() 操作无法得到简单基本类型值,于是它转而调用 toString()。因此下例中的两个数组变成了 “1,2” 和 “3,4”。+ 将它们拼接后返回 “1,23,4”。

let a = "42";let b = "0";a + b; // "420"let c = 42;let d = 0;c + d; // 42let x = [1,2];let y = [3,4];x + y; // "1,23,4"

登录后复制

可以使用+运算符进行字符串转换,将数字和空字符串 “” 相 + 来将其转换为字符串

let a = 42;let b = a + "";b; // "42"

登录后复制

a + “”(隐式)和前面的String(a)(显式)之间有一个细微的差别需要注意。

根据 ToPrimitive抽象操作规则,a + “”会对a调用valueOf()方法,然后通过ToString抽象 操作将返回值转换为字符串。而 String(a) 则是直接调用 ToString()。它们最后返回的都是字符串,但如果 a 是对象而非数字结果可能会不一样

let a = {    valueOf: function() { return 42; },    toString: function() { return 4; }};a + "";         // "42"String( a );    // "4"

登录后复制

(2)从字符串强制类型转换为数字的情况

-是数字减法运算符,因此a – 0会将a强制类型转换为数字。也可以使用a * 1和a /1,因为这两个运算符也只适用于数字,只不过这样的用法不太常见

let a = [3];let b = [1];a - b; // 2

登录后复制

2.隐式强制类型转换为布尔值

下面的情况会发生 布尔值隐式强制类型转换:

(1) if (..)语句中的条件判断表达式。

(2) for ( .. ; .. ; .. )语句中的条件判断表达式(第二个)。

(3) while (..) 和 do..while(..) 循环中的条件判断表达式。

(4) ? :中的条件判断表达式。

(5) 逻辑运算符 ||(逻辑或)和 &&(逻辑与)左边的操作数(作为条件判断表达式)。

以上情况中,非布尔值会被隐式强制类型转换为布尔值,遵循前面介绍过的 ToBoolean 抽象操作规则。

更多编程相关知识,请访问:编程入门!!

以上就是javascript怎么进行强制类型转换的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2714598.html

(0)
上一篇 2025年3月7日 21:35:43
下一篇 2025年3月5日 02:13:59

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • javascript怎么删除子节点

    javascript删除子节点的方法:首先获取父节点对象和子节点对象;然后使用removeChild()方法来删除子节点,语法“父节点对象.removeChild(子节点对象)”。removeChild()方法可以删除父节点上的一个子节点。…

    2025年3月7日
    200
  • javascript类的定义方法有哪些

    方法有:1、构造函数法,语法“function Cat(){}var cat1=new Cat();}”;2、Object.create()法,语法“var Cat={};var cat1=Object.create(Cat);”。 本教程…

    2025年3月7日
    200
  • javascript字符串如何进行编码转换

    javascript字符串进行编码转换的方法:1、使用escape()函数,对字符串进行编码以便它们能在所有计算机上可读,语法“escape(字符串)”;2、使用unescape()函数,语法“unescape(字符串)”。 本教程操作环境…

    2025年3月7日
    200
  • javascript如何关闭浏览器事件

    javascript关闭浏览器事件的方法:1、使用onbeforeunload方法,关闭或刷新浏览器会触发此事件;2、使用popstate方法,代码为【history.pushState(“123”, null, d…

    2025年3月7日
    200
  • javascript参数类型转换有哪些方法

    javascript参数类型转换的方法:1、显式数据类型转换,包括Number转换、其它类型转为boolean值等等;2、隐式转换,包括转number、转string等等。 本教程操作环境:windows7系统、javascript1.8.…

    2025年3月7日
    200
  • IE中JavaScript错误有哪些

    IE中JavaScript错误有:1、【error # 5】无效的过程调用或参数;2、【error # 6】溢出;3、【error # 7】内存不够;4、【error # 9】下标越界;5、【error # 11】被零除。 本教程操作环境:…

    2025年3月7日
    200
  • javascript多行注释如何实现

    javascript多行注释的实现方法是使用【/*】和【*/】可以定义多行注释信息,包含在【/*】和【*/】符号之间的任何字符都视被为注释文本而忽略掉。 本教程操作环境:windows7系统、javascript1.8.5版,DELL G3…

    2025年3月7日
    200
  • javascript怎么开启

    javascript的开启方法:首先进入浏览器,点击internet选项;然后在安全级别的“自定义级别”,找到“脚本”找到JAVE点击“启用”,在活动脚本点击“启用”;最后确定你设置好的项目,点击“确定”。 本教程操作环境:windows7…

    2025年3月7日 编程技术
    200
  • javascript怎么删除表格行

    javascript删除表格行的方法:首先使用“document.querySelector(“tr”)”语句获取表格tr(行)对象;然后使用“tr.remove()”语句来删除表格中的一行单元格。 本教程操作环境:…

    2025年3月7日
    200
  • javascript怎么将字母转为小写

    javascript字母转为小写的方法:1、使用toLowerCase()函数,语法“string.toLowerCase()”;2、使用toLocaleLowerCase()函数,可以根据本地主机的语言环境把字符串转换为小写。 本教程操作…

    2025年3月7日
    200

发表回复

登录后才能评论