资讯专栏INFORMATION COLUMN

笔记:隐式转换规则

niuxiaowei111 / 607人阅读

摘要:比较运算符,操作数都不是类型时操作数中只有类型和类型,或者其中有一个是转换为运算条件运算转换为号运算,其中一个操作符为字符串比较运算,其中一个操作符为字符串

要求:学习,并背诵全文

原始值
类型 Undefined Null String Boolean Number
undefined null 所有字符串 true false 所有数字/NaN
引用类型

Object的成员叫对象,包括Array,Function,Math,Date,JSON,RegExp等除了原始值之外的所有的类型的成员。

valueOf / toString
Object String Array Number Date Boolean Function
valueOf 原始值 原始值 原始值 原始值 毫秒时间戳 原始值 string
toString [Object Object] 原始值 join方法返回的结果 数字字符串 本地时间字符串 "true"/"false" string
Boolean(x)
X Undefined Null String Boolean Number Object
Boolean(X) = true - - 非空字符串 true 非0 非NaN 所有
Boolean(X) = false undefined null 空字符串 false 0 NaN
Number(x)
X Undefined Null String Boolean Number Object
Number(X) = number - - 全为数字 - 原样返回 desc: 先调用valueOf再转换为Number
Number(X) = 0 - null "0" false 0 -
Number(X) = 1 - - "1" true 1 -
Number(X) = NaN undefined - 包含数字之外的字符 - NaN -
String(x)
X Undefined Null String Boolean Number Object
String(x) "undefined" "null" 原样返回 "true"/"false" toString结果 先转为原始值,然后调用toString
Object(x)
x undefined null Boolean Number String Object
Object(x) {} {} 原始值为X的Boolean对象 原始值为X的Number对象 原始值为X的String对象 原值输出
Object(undefined) // {}
Object(null)  // {}
Object(true)   // Boolean {true}
Object(false)  // Boolean {false}
Object(1)      // Number {1}
Object("hello") // String {"hello"}
Object({ a: 1 }) // {a: 1}
场景 转换为Number

一元 +, - 运算符

+{} = NaN
+"20" = 20
-"20" = -20
+[] = 0;
+[1] = 1;
+[1, 2] = NaN

++, -- 运算符

+, -, *, /, % 计算

需要注意的是,当 + 计算有字符串参与计算时,会转换为字符串。

>, <, >=, <= 比较运算符, 操作数都不是String类型时

==, != 操作数中只有String类型和Number类型,或者其中有一个是Boolean

转换为Boolean

&& ! || 运算

条件运算

if, while, do-while, for

转换为String

+ 号运算,其中一个操作符为字符串

比较运算,其中一个操作符为字符串

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90797.html

相关文章

  • js基础笔记-类型装换

    摘要:在中,如果函数没有声明返回值,那么会返回。返回是一元运算符,后跟变量的名称,用于获取变量的数据类型,其返回值有个以及。 前言 说好听是说JS灵活, 说不好听就是JS的坑太多, JS类型转换就是一个大坑, JS的类型包括了原始类型的[null, undefined, String ,Number, Boolean],以及对象类型的[function, object]; JavaScrip...

    Cobub 评论0 收藏0
  • JavaScript隐式类型转换

    摘要:所谓装箱转换,正是把基本类型转换为对应的对象,他是类型转换中一种相当重要的种类。拆箱转换在标准中,规定了函数,它是对象类型到基本类型的转换即,拆箱转换。拆箱转换会尝试调用和来获得拆箱后的基本类型。 JavaScript隐式类型转换 基本数据类型 ECMAScript 一共定义了七种 build-in types,其中六种为 Primitive Value,Null, Undefined...

    bingo 评论0 收藏0
  • Effective JavaScript读书笔记(一)

    摘要:如果为假值,不传或者传入,函数都会返回但是,传入这个值是完全有可能的,所以这种判断形势是不正确的或者使用来判断也可以原始类型优于封装类型对象拥有六个原始值基本类型布尔值,数字,字符串,,和对象。 作为一个前端新人,多读书读好书,夯实基础是十分重要的,正如盖楼房一样,底层稳固了,才能越垒越高。从开始学习到现在,基础的读了红宝书《JavaScript高级程序设计》,犀牛书《JavaScri...

    zhoutao 评论0 收藏0
  • (黑马)C++提高编程笔记(未完)

    摘要:文章目录模板模板的概念函数模板函数模板语法函数模板注意事项函数模板案例普通函数与函数模板的区别普通函数与函数模板的调用规则模板的局限性类模板类模板语法类模板与函数模板区别类模板中成员函数创建时机类模板对象做函数参数类模 ...

    Jenny_Tong 评论0 收藏0
  • Cpp Primer | 第7章 : 类 (笔记+练习)

    摘要:构造函数的任务是初始化类对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。构造函数名字和类名相同,没有返回类型。构造函数放在类的部分要求编译器合成默认的构造函数。练习在你的类中添加构造函数,然后编写一段程序令其用到每个构造函数。 ...

    testbird 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<