当前位置: 首页 > 编程笔记 >

Javascript必知必会(四)js类型转换

顾恺
2023-03-14
本文向大家介绍Javascript必知必会(四)js类型转换,包括了Javascript必知必会(四)js类型转换的使用技巧和注意事项,需要的朋友参考一下

string和number boolean

javascript 类型会根据赋值的进行转成相应的类型。

var str = "";
alert(typeof (str));//string
str = ;
alert(typeof (str));//number
var sum = str + ; //+编程两个数字相加
alert(sum);// 

   这一种比较明显,一眼就可以计算出其值。但是请看下面这种转换

var sum = "" + "";
alert(typeof (sum)); //string
alert(sum);// 
var sum = "" + ;
alert(typeof (sum)); //string
alert(sum);//
     
     var sum = + "";
     alert(typeof (sum));//string
     alert(sum);
var area = "" * "";
alert(typeof (area)); //number
alert(area);//
var sub = "" - "";
alert(typeof (sub)); //number
alert(sub);//
var div = "" / "";
alert(typeof (div));//number
alert(div);//. 

  number 类型如果和string 类型"+", 将会直接number转成string

上述中“+” 比较特殊,如果是- 、* 、/ 呢;那么最终会转成什么类型呢。

var area = "" * "a";
alert(typeof (area));//number
alert(area);//NaN
var sub = "a" - "";
alert(typeof (sub));//number
alert(sub);//NaN
sub = "a" - ;
alert(typeof (sub));//number
alert(sub);//NaN
var div = "" / "a";
alert(typeof (div));//number
alert(div);//NaN
div = "a" / ;
alert(typeof (div));//number
alert(div);//NaN 

  如上 - 、*、/ 是number 中算术具有的。string和number是不能进行运算的,所以其值都是NaN。类型number。

var a = true;
alert(typeof(a));//boolean
var b = "true";
var ab = a + b;
alert(typeof (ab));//string
alert(ab); //truetrue
alert(a == b);//false 

   boolean 和 string ,boolean类型自动转成了字符串“true”,但是为什么a不等于b呢

大家看下这个例子:

var c = "";
alert(typeof(c));//string
var d = ;
alert(typeof (d));//number
alert(c == d);//true 

  这里给出了转换的原则:(供参考)

1. 如果有一个操作数是布尔值,则在比较相等之前将其转换为数值————false转换为0,true转换为1;
2. 如果一个操作数是字符串,另一个操作符是数值,则在比较相等之前先讲字符串转换为数值;
3. 如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较。

那么在比较字符串和布尔类型是就会:

发生这样的转换: Boolean true先转成number 1,在转成字符串“1” ,在进行比较。结果肯定是 false 了。

null 和string number Boolean undefined

var a = null;
alert(typeof (a));//object
var b = "hello";
var ab = a + b;
alert(typeof (ab));//string
alert(ab); //nullhello
var c = ;
var ac = a * c;
alert(typeof (ac)); //number
alert(ac);//
if (a ) //false
{
} else
{
alert("false");
}
var u;
alert(a == u); //true 

  从给出的例子可以看出:

null 在 string中 自动转成字符串"null" , 在number中表示数字 0,在逻辑判断中相当于false,在值表示时 和undefined 一样。注意是== 而不是===。

虽然javascript 在进行比较时,== 转换了其比较类型,但是其变量类型并没有因为== 而发生改变。

 类似资料:
  • 本文向大家介绍JavaScript必知必会(七)js对象继承,包括了JavaScript必知必会(七)js对象继承的使用技巧和注意事项,需要的朋友参考一下 对象继承inherit 如何调用o中的r属性呢。 应该使用原型进行调用。 以上所述是小编给大家介绍的JavaScript必知必会(七)js对象继承的相关知识 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感

  • 在正式开始前先介绍几个 vim 的必知会,这不是关于如何使用而是如何配置 vim 的要点,这对理解后续相关配置非常有帮助。 0.1 .vimrc 文件 .vimrc 是控制 vim 行为的配置文件,位于 ~/.vimrc,不论 vim 窗口外观、显示字体,还是操作方式、快捷键、插件属性均可通过编辑该配置文件将 vim 调教成最适合你的编辑器。 很多人之所以觉得 vim 难用,是因为 vim 缺少默

  • 主要为了方便其他 新手 开发者学习 Linux , 也为学习 Linux 做下总结与记录,本书内容会偏向实用,不会有过多的理论知识,太底层的知识我也无法一一讲解,毕竟我只是一个 Linux 熟练工。 书中内容我会尽个人的最大努力进行总结与归类,做到每个章节的内容可以独立阅读,帮助读者通过某些命令实现实现具体的功能。书中内容会陆续更新,无法一步到位。

  • 基础问题 recyclerview和listview的区别;两者性能之间的差距 view绘制原理、绘制流程,自定义View的操作,如何获取view的宽高,自定义View如何提供获取View属性的接口? HashMap,HashMap底层,HashMap线程安全 线程和进程的区别 Handler,通过Handler传递的线程对象的生命周期,传递的时候涉及几次拷贝? RecyclerView和List

  • 本文向大家介绍对存在JavaScript隐式类型转换的四种情况的总结(必看篇),包括了对存在JavaScript隐式类型转换的四种情况的总结(必看篇)的使用技巧和注意事项,需要的朋友参考一下 一般存在四种情况,JavaScript会对变量的数据类型进行转换。 目录 if中的条件会被自动转为Boolean类型 会被转为false的数据 会被转为true的数据 参与+运算都会被隐式的转为字符串 会被转

  • 本文向大家介绍经典的20道AJAX面试题(必知必会),包括了经典的20道AJAX面试题(必知必会)的使用技巧和注意事项,需要的朋友参考一下 1、什么是AJAX,为什么要使用Ajax(请谈一下你对Ajax的认识) 什么是ajax: AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。 Ajax包含下列技术: 基于web标准(