深入浅出JavaScript(一)
数据类型
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(一)的更多相关文章
- 深入浅出 JavaScript 对象 v0.5
JavaScript 没有类的概念,因此它的对象与基于类的语言中的对象有所不同.笔者主要参考<JS 高级程序设计>.<JS 权威指南>和<JS 精粹> 本文由浅入深 ...
- 深入浅出 JavaScript 关键词 -- this
深入浅出 JavaScript 关键词 -- this 要说 JavaScript 这门语言最容易让人困惑的知识点,this 关键词肯定算一个.JavaScript 语言面世多年,一直在进化完善,现在 ...
- 深入浅出Javascript的正则表达式
深入浅出的javascript的正则表达式学习教程 阅读目录 了解正则表达式的方法 了解正则中的普通字符 了解正则中的方括号[]的含义 理解javascript中的元字符 RegExp特殊字符中的需要 ...
- 深入浅出JavaScript之原型链&继承
Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instanc ...
- 深入浅出JavaScript之闭包(Closure)
闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...
- 深入浅出JavaScript之this
JavaScript中的this比较灵活,根据在不同环境下,或者同一个函数在不同方式调用下,this都有可能是不同的.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面是我的学习笔记 ...
- 【转】深入浅出JavaScript之this
JavaScript中的this比较灵活,根据在不同环境下,或者同一个函数在不同方式调用下,this都有可能是不同的.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面是我的学习笔记 ...
- 【转】深入浅出JavaScript之闭包(Closure)
闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...
- 深入浅出 JavaScript 中的 this
在 Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的 ...
- 【转】深入浅出 JavaScript 中的 this
Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这 ...
随机推荐
- C#回调浅析(委托、接口回调)
https://wenku.baidu.com/view/ed724173bd64783e08122b2f.html
- 大数据处理框架之Strom:容错机制
1.集群节点宕机Nimbus服务器 单点故障,大部分时间是闲置的,在supervisor挂掉时会影响,所以宕机影响不大,重启即可非Nimbus服务器 故障时,该节点上所有Task任务都会超时,Nimb ...
- qt5.5.1 移植4412的问题过程
1.编译错误: ../WTF/wtf/unicode/wchar/UnicodeWchar.h: In function 'bool WTF::Unicode::isAlphanumeric(UCha ...
- 10 分钟速成 Python3
Python 是由吉多·范罗苏姆(Guido Van Rossum)在 90 年代早期设计. 它是如今最常用的编程语言之一.它的语法简洁且优美,几乎就是可执行的伪代码. 注意:这篇教程是基于 Pyth ...
- ::before 伪元素三角
ul::before{ content: ''; width:; height:; border: 10px solid transparent; border-bottom: 10px solid ...
- STM32 一个定时器产生4路 独立调频率,占中比可调,脉冲个数可以统计。
实现这个功能,基本原理是利用STM32 的输出比较功能. 1.其它设置就是普通定时器的设置这里开启,四个输出比较中断,和一个更新中断, 更新中断这里不需要开也可以达到目的,我这里开启是做其它的用处的. ...
- antd-design model 数据特点
- Linux基础命令---切换用户su
su 临时切换身份到另外一个用户,使用su切换用户之后,不会改变当前的工作目录,但是会改变一些环境变量. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUS ...
- centos 6.8操作系统安装arcgis server 10.4
1.检查操作系统中软件包的安装,第一条和第二条是图形界面工具,可以不装. 可以用rpm -qa | grep 软件名 命令检查软件包是否已经安装 主机名不能包含下划线,可以用hostname检查主 ...
- AtCoder Beginner Contest 082 A - Round Up the Mean
题目链接:https://abc082.contest.atcoder.jp/tasks/abc082_a Time limit : 2sec / Memory limit : 256MB Score ...