Notes
  • 速记
  • 前端面试
  • HTML / CSS
    • HTML
    • CSS
    • CSS Modules
      • CSS Modules
        • CSS Modules Usage
      • Stylus
      • Nunjucks
  • Javascript
    • 正则表达式
    • 代理(Proxy)和反射(Reflection)
    • 类型转换
    • 按位操作
    • 数据可视化
    • 数据采集
      • 无(全)埋点
      • 模块曝光事件
    • package
      • axios
    • Event Loop
    • React
      • React热身
      • VDOM和DOM-diff
    • Vue
    • Omi
    • MVVM
    • 百度小程序
    • AST抽象语法树
    • ServiceWorker
    • WebSocket
  • NodeJS
    • Assert 断言
    • chai.js 断言库
    • Node Global Obj And Var
    • CLI Writed By Nodejs
    • Framework
      • Hapi Js Framework
    • Electrode JS
      • Electrode Platform
      • Electrode Question
    • Redux
      • Redux Basic Usage
      • Middleware And Asynchronous
      • React-Redux 的用法
    • NPM
      • package.json
      • semver
    • Webpack
      • 编写插件
    • 同构渲染
    • 调用DLL
  • 服务端
    • Inotify
    • Linux
    • Nginx
      • Nginx简介
      • Nginx原理、安装预配置
    • TCP/IP 协议
    • HTTP 协议
      • 基础概念篇
      • 协议详解篇
    • Process
      • 阻塞与非阻塞
      • 进程与线程优性能
  • 数据库
    • GraphQL
  • 移动端
  • 微信小程序
    • 微信小程序安装(linux)
    • 小程序第三方框架
  • 开发工具
    • 开发工具安装
    • Vim Command Collection
    • Git
      • Git Rule
      • Git Submodule
      • gitignore
    • Lerna
    • Ubuntu开发环境安装
  • 运维测试
    • Docker
      • Docker Synopsis
      • docker.sock
    • Nightwatch
    • Jest
  • 算法/数学/架构
    • 设计模式
    • 架构设计经验分享
    • 前端架构
    • 基本数据结构
    • 函数式编程
  • 软件工程
    • 软件生命周期
Powered by GitBook
On this page
  • 数据类型
  • 类型介绍
  • typeof 返回值
  • 强制转换
  • 隐式转换
  • 规则
  • 常见的隐式转换
  • Object类型

Was this helpful?

  1. Javascript

类型转换

js 中的那些隐式转换和强制转换

数据类型

类型介绍

  1. Number

  2. Boolean

  3. String

  4. Undefined

  5. Null

  6. Object

  7. Symbol(es6定义的)

typeof 返回值

  1. number

  2. boolean

  3. string

  4. object

  5. undefined

  6. object

  7. function

  8. symbol

强制转换

通过String(), Number(), Boolean()函数强制转换 1. parseInt() -> 转换到第一个不是数字为止,一个都没有返回 NAN

隐式转换

规则

  1. 转换成 String

      • 字符串连接符

  2. 转换成 Number

    • 自增/自减运算符(++|--)

    • 算术运算符(+-*/)

    • 关系运算符(>|<|>=|<=|==|!=)

  3. 转成 Boolean

常见的隐式转换

基本类型

  1. 注意字符串连接符与算数运算符的区别

    • 字符串连接符: 只要+号两边存在字符串

    • 算术运算符+: 两边都是数字

  2. 关系运算符会把其他数据类型转换成Number之后比较

    • 两边都是字符串时,按照字符串对应的unicode编码转成数字比较

    • 两边都是字符串,且字符串是多个字符时。从左往右依次比较

Object类型

  1. 先转成String,然后再转成Number

    • 先用 valueOf() 方法获取其原始值,如果原始值不是Number类型,则用toString() 方法转成String

    • 再将String转成Number运算

  2. Array.prototype.toString.call([]) === ''

  3. Object.prototype.toString.call({}) === '[object Object]'

Previous代理(Proxy)和反射(Reflection)Next按位操作

Last updated 5 years ago

Was this helpful?