zoukankan      html  css  js  c++  java
  • JS隐式类型转换

    javascript是一种弱类型语言,用var声明变量,为变量赋值时会自动判断类型并进行转换;而强类型语言变量类型有多种,例如int char float boolean 等不同的类型相互转换有时需要强制转换

    ECMAScript中有5中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number和String。还有一种复杂的数据类型Object(除了五大基础类型之外的都是Object,Object、Array和Function属于Object)

     

    判断相等(==)时隐式类型转换转换顺序为:

    对象 > 字符串 > 数字

    数组转换字符串:[] 转换字符串结果为 “”;[1,2,3] 转换字符串结果为“1,2,3”;

    Object转换字符串: var a = {} ,a转换字符串为 "[object Object]";即 a == "[object Object]"  为true

    Function转换字符串: "function (){}" 即 var a = function(){};a ==  "function (){}" 为 true

    布尔值 > 数字

    如果有数字最终都会转换为数字比较(Number方法)

    null == undefied

    但这其中null做相等判断(==)时不转换,但是null == undefied为真,这是js规范的,不要试图通过转换数据类型来解释这个结论,ECMAScript 规范认为,既然 null 和 undefined 的行为很相似,并且都表示 一个无效的值,那么它们所表示的内容也具有相似性

  • 相关阅读:
    字符串与Json操作
    默认让IE用最高文档模式浏览网页
    MVC中简单的文件下载代码
    2017年1月22日
    JDK环境变量设置
    如何实现windows命令提示符的tab补全
    win7热点设置
    为什么小米5不能适配win7
    各种错误锦集
    插头DP
  • 原文地址:https://www.cnblogs.com/xiaomingSun/p/8471823.html
Copyright © 2011-2022 走看看