javascript 隐性类型转换步骤

原文:javascript 隐性类型转换步骤

这里说的隐性类型转换,是==引起的转换。

  1. 如果存在NaN,一律返回false
  2. 再看有没有布尔,有布尔就将布尔转换为数字
  3. 接着看有没有字符串, 有三种情况,对方是对象,对象使用toString进行转换;对方是数字,字符串转数字;对方是字符串,直接比较;其他返回false
  4. 如果是数字,对方是对象,对象取valueOf进行比较, 其他一律返回false
  5. null, undefined不会进行类型转换, 但它们俩相等

这个顺序一定要死记,这是面试时经常问到的。

下面是一些杂题,自己做做

0 == undefined

1 == true

2 == {valueOf: function(){return 2}}

NaN == NaN

 8 == undefined

1 == undefined

 null == {toString: function(){return 2}}

 0 == null

 null == 1

 { toString:function(){ return 1 } , valueOf:function(){ return [] }} == 1
时间: 2024-08-07 17:00:30

javascript 隐性类型转换步骤的相关文章

js隐性类型转换步骤

这里说的隐性类型转换,是"=="引起的转换. 如果存在NaN,一律返回false再看有没有布尔,有布尔就将布尔转换为数字接着看有没有字符串, 有三种情况,对方是对象,对象使用toString进行转换:对方是数字,字符串转数字:对方是字符串,直接比较:其他返回false 如果是数字,对方是对象,对象取valueOf进行比较, 其他一律返回falsenull, undefined不会进行类型转换, 但它们俩相等 以下为ture: null==undefined 2=={valueOf: f

(五)JavaScript之[类型转换]

1 /** 2 * 类型转换 3 * 4 * JavaScript 数据类型 5 * 1.不同的数据类型 6 * string 7 * number 8 * object 9 * boolean 10 * function 11 * 12 * 2.对象类型 13 * Object 14 * Date 15 * Array 16 * 17 * 3.不包含任何值的数据类型 18 * null 19 * undefined 20 * 21 * typeof操作符查看JS的数据类型 22 * 23 *

javascript之类型转换

JavaScript是一种无类型语言,但同时JavaScript提供了一种灵活的自动类型转换的处理方式.基本规则是,如果某个类型的值用于需要其他类型的值的环境中,JavaScript就自动将这个值转换成所需要的类型. 以下列出JavaScript一种特定类型用于一种特定环境下时所执行的转换. 类型转换 值    字符串    数字  布尔值 对象 未定义  "undefined"    NaN    false   Error null      "null"   

Javascript数据类型转换

JS是弱类型语言 1.声明变量时,不需要规定变量存储的数据类型 2.赋值时,动态判断数据的类型 同一个变量,先后可保存不同类型的值 3.js会在需要时自动转换数据的类型 两大类转换方式:隐式转换和强制转换 隐式转换 不需要程序员干预,js自动完成的类型转换 算术计算中,一切数据都默认转换为数字,再计算 在+运算中,碰到字符串,+就变为字符串拼接,另一个不是字符串的数据,被自动转换为字符串 特殊情况:如果数据无法被转换为数字类型,会被转为NaN,表示不是一个数字的数字(不是以恶有效的数字) NaN

HDU1001 关于累加公式的隐性类型转换

HDU 1001就卡了. 受到小白的启发遇到这样的循环题目直接转化成公式求解以优化时间.但是!我就是过不了! 问题代码: #include<stdio.h> int main() { int a; while(scanf("%d",&a)!=EOF) printf("%d\n\n",a*(1+a)/2); return 0; } 问题在于虽然题目中表示最后结果会在32bit内,但是没保证a*(1+a)也是32bit.......菜鸟又忽略了在除法

JavaScript的类型转换( 本贴来自网易前端微专业的个人学习笔记 )

小编的话:如果真正要自己写好JS,首先明白JS类型转换.首先贴出来JS对象的三大分类. 1.浏览器扩展对象:ActiveXObject,XML,Debug,Script,VBArray... 2.宿主对象:window,document,navigator 3.原生对象: (1).构造函数:Boolean,String,Nunber,Object,Function,Array,Date,RegExp,Error (2).对象:Math,JSON,全局对象,arguments 一.JS隐式类型转换

__x__(53)0918第七天__ JavaScript 强制类型转换

其他进制的数字 二进制    以 0b 开头的 Number 八进制    以 0 开头的 Number 十六进制    以 0x 开头的 Number 注意:无论是多少进制的数字,输出都是十进制 强制类型转换 主要指的是将 变量类型 转换为String,Number,Boolean类型. 1. 转换为字符串 String 通过调用 String.toString() 方法 : Null .Undefined 没有 .toString() 方法,意味着不能用此方法转换 var a = 123;

javascript 显示类型转换

一.转型函数Boolean() ECMAScript中所有类型的值都有与Boolean值(true和false)等价的值.要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean() 数据类型 转换为true的值 转换为false 的值 Boolean true false String 任何非空字符串 "" (空字符串) Number 任何非零数字值(包括无穷大) 0和NaN Object 任何对象 null Undefined 不适用 undefined Boole

JavaScript 数据类型转换

http://cn.engadget.com/search/?q=%23%E4%B8%8A%E6%B5%B7%E6%89%BE%E5%B0%8F%E5%A7%90%E6%9C%8D%E5%8B%99%23%E7%94%B5%E8%AF%9D%EF%BC%91%EF%BC%98%EF%BC%96%EF%BC%8D%EF%BC%91%EF%BC%93%EF%BC%91%EF%BC%96%EF%BC%8D%EF%BC%97%EF%BC%91%EF%BC%91%EF%BC%93 http://cn.en