js 的隐式转换与显式转换

隐式转换

1.undefined与null相等,但不恒等(===)

2.一个是number一个是string时,会尝试将string转换为number

3.隐式转换将boolean转换为number,0或1

4.隐式转换将Object转换成number或string,取决于另外一个对比量的类型

5.对于0、空字符串的判断,建议使用 “===” 。

6.“==”会对不同类型值进行类型转换再判断,“===”则不会。它会先判断两边的值类型,类型不匹配时直接为false。

undefined == null;  // true
1 == true;  // true
2 == true;  // false
0 == false;  // true
0 == ‘‘;  // true
NaN == NaN;  // false  NaN不等于任何值
[] == false;  // true
[] == ![];  // true
‘6‘ - ‘3‘  // 3
1234 + ‘abcd‘ // "1234abcd"

显示转换

显示转换一般指使用Number、String和Boolean三个构造函数,手动将各种类型的值,转换成数字、字符串或者布尔值。

Number:

Number(‘1234‘) // 1234
Number(‘1234abcd‘) // NaN
Number(‘‘) // 0
Number(true) // 1
Number(null) // 0
Number(undefined) // NaN

String:

String(1234)  // "1234"
String(‘abcd‘)  // "abcd"
String(true)  // "true"
String(undefined) // "undefined"
String(null)  // "null"

Boolean:

Boolean(0)  // false
Boolean(undefined)  // false
Boolean(null)  // false
Boolean(NaN)  // false
Boolean(‘‘)  // false

原文地址:https://www.cnblogs.com/missya/p/11040544.html

时间: 2024-11-08 22:01:59

js 的隐式转换与显式转换的相关文章

自定义隐式转换和显式转换c#简单例子

自定义隐式转换和显式转换c#简单例子 (出自朱朱家园http://blog.csdn.net/zhgl7688) 例子:对用户user中,用户名first name和last name进行转换成合成一个限定长度为10个字符新name. 自定义隐式转换: namespace transduction { public partial class transductionForm : Form { public transductionForm() { InitializeComponent();

自己定义隐式转换和显式转换c#简单样例

自己定义隐式转换和显式转换c#简单样例 (出自朱朱家园http://blog.csdn.net/zhgl7688) 样例:对用户user中,usernamefirst name和last name进行转换成合成一个限定长度为10个字符新name. 自己定义隐式转换: namespace transduction { public partial class transductionForm : Form { public transductionForm() { InitializeCompon

隐式转换和显式转换及强制转换的区别【转】

隐式转换和显式转换及强制转换的区别 string strType = "123"; object objType= (object)strType;//可以不要,隐式转换, 要的为显式转换 string strType2 = (string)objType; //必须要,显式转换 int intType = (int)strType; //错误,不能通过编译 int intType = (int)objType; //错误,能通过编译 int intType = Convert.ToI

隐式转换和显式转换及强制转换的区别

string strType = "123"; object objType= (object)strType;//可以不要,隐式转换, 要的为显式转换 string strType2 = (string)objType; //必须要,显式转换 int intType = (int)strType; //错误,不能通过编译 int intType = (int)objType; //错误,能通过编译 int intType = Convert.ToInt32(objType); //正

隐式转换和显式转换

C/C++对于数据类型的转换包括隐式转换和显式转换(强制类型转换). 一般来说,隐式转换包括以下几种情形: 1. 低精度与高精度混合运算,低精度会隐式转换成高精度类型. int a = 10; double b = 1.2; double c = a + b;//此时a会隐式转换成double类型进行运算. bool.char.short.int.long.float.double依次向上会发生隐式转换.bool类型向上转换时,false转换成0,true转换成1. [p.s.]有符号和无符号数

c# 强制转换, 隐式转换, 显式转换

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace 第二节课{    class Program    {        static void Main(string[] args)        {            decimal i = 4;            int a = 5;     

js数据类型隐式转换笔记以及js包装对象

“37”+7              //377 “37”-7              //30 巧用+/-规则  变字符串  x+''   变数字x-0 js里面的==是不严格等于 “123” == 123 0 == false nul l== undefined new  Object() == new Object() [1,2]==[1,2] 但是[1,2]===[1,2]是错的 因为比较的是对象的引用 ps: NaN值和任何东西比较都不相等 即便是不严格等于 ———————————

【C++自我精讲】基础系列五 隐式转换和显示转换

0 前言 1)C++的类型转换分为两种,一种为隐式转换,另一种为显式转换. 2)C++中应该尽量不要使用转换,尽量使用显式转换来代替隐式转换. 1 隐式转换 定义:隐式转换是系统跟据程序的需要而自动转换的. 1)C++类型(char,int,float,long,double等)的隐式转换: 算术表达式隐式转换顺序为: 1.char - int - long - double 2.float - double //1)算术表达式 int m = 10; double n = m;//n = 10

JS笔记(二):隐式转换

最近刚开始复习JS的基础知识,看到隐式转换这一块,发现它的规则很多,红宝书上列出的框框又有些冗杂,所以这里我借一个式子总结一下其中的规律以及一些有趣的现象.