数据类型

1. 六种数据类型

JavaScript包含六种数据类型:基本类型number、string、boolean、null、undefined和对象类型Object。其中,对象类型包含方法function、数组array和日期Date等。

2. 隐式转换

  • 使用+时表示连接,使用-时表示数字运算,可以巧用在number和string之间转换;
  • 类型相同比较相当于恒等===;
  • 类型不同尝试类型转换再比较,我称作为向下转型:
    • null == undefined
    • number == string,后者会自动转型为number
    • boolean会转型为number
    • object会转型为number或者string

3. 包装对象

当一个基本类型当对象使用时,只是产生了一个临时对象,将基本类型包装为一个对象,它是没有对象的属性的,使用完一次对象即销毁。

4. 类型检测

  • typeof检测:

    • typeof null; //"object"
    • 适合基本类型及function检测,null检测为object
  • instanceof检测:
    • [1,2] instanceof Array; //true
    • 适合自定义对象和原生对象,在不同iframe和Window间检测失效
  • Object.prototype.toString检测:
    • Object.prototype.toString.apply(123); //"[object Number]"
    • 适合基本类型和内置对象,null检测为null,undefined检测为undefined

表达式和运算符

  • 常量、变量、关键字叫原始表达式。

    • 原始表达式使用运算符连接叫做复杂表达式;
    • 数组表达式可以表示数组的初始化,花括号表达式可以表示初始化对象;
    • 函数表达式
    • 属性访问表达式,如Object o = new Object();o = {x:1};o.x; //1
    • 对象创建表达式
    • 调用表达式
  • 运算符分为一元、二元、三元运算符。
    • 其他常用
    • 逗号运算符
    • delete运算符
    • this
    • in

语句

  • JavaScript没有块级作用域(block使用{})
  • 函数内有函数作用域,函数内var a= b= 1;,b是全局变量,a是局部变量
  • try-catch语句抛异常的顺序问题:❤️:从内到外
  • 函数和函数表达式
  • for--in遍历是不按顺序的
  • with遍历,用于深层次遍历,但是不推荐了

深入浅出JavaScript(一)的更多相关文章

  1. 深入浅出 JavaScript 对象 v0.5

    JavaScript 没有类的概念,因此它的对象与基于类的语言中的对象有所不同.笔者主要参考<JS 高级程序设计>.<JS 权威指南>和<JS 精粹> 本文由浅入深 ...

  2. 深入浅出 JavaScript 关键词 -- this

    深入浅出 JavaScript 关键词 -- this 要说 JavaScript 这门语言最容易让人困惑的知识点,this 关键词肯定算一个.JavaScript 语言面世多年,一直在进化完善,现在 ...

  3. 深入浅出Javascript的正则表达式

    深入浅出的javascript的正则表达式学习教程 阅读目录 了解正则表达式的方法 了解正则中的普通字符 了解正则中的方括号[]的含义 理解javascript中的元字符 RegExp特殊字符中的需要 ...

  4. 深入浅出JavaScript之原型链&继承

    Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instanc ...

  5. 深入浅出JavaScript之闭包(Closure)

    闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...

  6. 深入浅出JavaScript之this

    JavaScript中的this比较灵活,根据在不同环境下,或者同一个函数在不同方式调用下,this都有可能是不同的.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面是我的学习笔记 ...

  7. 【转】深入浅出JavaScript之this

    JavaScript中的this比较灵活,根据在不同环境下,或者同一个函数在不同方式调用下,this都有可能是不同的.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面是我的学习笔记 ...

  8. 【转】深入浅出JavaScript之闭包(Closure)

    闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...

  9. 深入浅出 JavaScript 中的 this

    在 Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的 ...

  10. 【转】深入浅出 JavaScript 中的 this

    Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这 ...

随机推荐

  1. ModuleNotFoundError: No module named '_pydevd_bundle.pydevd_cython' error on debug

    现象:pycharm调试代码出现错误:ModuleNotFoundError: No module named '_pydevd_bundle.pydevd_cython' error on debu ...

  2. Robot Framework 教程 (3) - Resource及关键字 的使用

    From:http://www.cnblogs.com/buaawp/p/4754399.html Robot Framework 教程 (3) - Resource及关键字 的使用 在进行软件自动化 ...

  3. ecplise问题总结

    ecplise 1.ecplise在运行的时候出现错误 Unable to execute dex: GC overhead limit exceeded GC overhead limit exce ...

  4. python实现堆栈和队列

    利用python列表实现堆栈和队列 堆栈: 堆栈是一个后进先出的数据结构,其工作方式就像生活中常见到的直梯,先进去的人肯定是最后出. 我们可以设置一个类,用列表来存放栈中的元素的信息,利用列表的app ...

  5. Log4j基础知识

    Log4J是Apache的一个开放源代码的项目.通过使用Log4J,程序员可以控制日志信息输送的目的地,包括控制台,文件,GUI组件和NT事件记录器,也可以控制每一条日志的输出格式,或通过定义每一条日 ...

  6. DBUtils (30)

    DBUtils是java编程中的数据库操作实用工具,小巧简单实用. DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码. Dbutils三个核心功能介绍 一.  QueryRunn ...

  7. Flask的请求对象--request

    request-Flask的请求对象 请求解析和响应封装大部分是有Werkzeug完成的,Flask子类化Werkzeug的请求(Request)对象和响应(Response)对象,并添加了和程序的特 ...

  8. Linux基础命令---apwatch

    arpwatch      arpwatch指令可以监听网络设备和ip地址的对应关系,将发现的信息发送到系统日志“/var/log/message”. 此命令的适用范围:RedHat.RHEL.Ubu ...

  9. mysql-day06

    ##视图 - 什么是视图:在数据库中存在多种对象,表和视图都是数据库中的对象,创建视图时名称不能和表重名,视图实际上就代表一段sql查询语句,也可以理解成视图是一张虚拟的表,此虚拟表中的数据会随着原表 ...

  10. Ubuntu 为 root 帐号开启 SSH 登录

    1. 修改 root 密码sudo passwd root 2. 以其他账户登录,通过 sudo nano 修改 /etc/ssh/sshd_config :xxx@ubuntu:~$ su - ro ...