JavaScript学习笔记2(草稿)
2016-03-29 21:42
459 查看
JavaScript学习笔记2
基于youtube JavaBrain视频系列 - JavaScript for Developers Unit02
I. 变量
变量的声明和赋值(Declaration and Definition)
var value = 42;
或者var value; value = 42;
JavaScript是弱类型语言,没有变量类型,声明变量时不需要指明类型
这不同于强类型语言(e.g. C/Java/C++)
任何类型都可以赋给某个变量,而且可以前后分别赋给不同的类型
II. Primitive Types
JavaScript一共有五种基础变量类型(Primitive Types)
(1) Number: 包括了其他语言中一般数字类型,int, double, float。在JavaScript中使用64位双精度储存
比如 var a = 1; 实际在JS中表示为1.0000...
Q: Is 42 equal to 42.0? 无论使用双等还是triple equal,
42都等于42.0
![](https://img-blog.csdn.net/20160329215026530?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(2) String: JS没有char类型来代表单个字符。String类型使用16位unicode储存
(3) Boolean: true or false
(4) Undefined: 只有一个值“undefined”,注意结尾有d
undefined是指变量声明(declaration)了但是没有赋值(definition),即var value;之后,value声明了但是未赋值,这时打印value为"undefined"
(5) Null: 也只有一个取值“null”
*(6) Symbol: EMCAScript6新增加的类型,类似于其他语言的枚举类型
Q
III. Difference between Undefined and Null
not saw it v.s. not applicable
IV. Types Summary
1. No need to declare type for a variable
2. A variable can be assigned to different types
3. No scoping information,不同于Java语言没有public, private等变量范围声明
4. Variables are interrogated,由于属于弱类型语言,变量在操作时需要知道与它进行操作的变量是什么类型,必要时需要进行自动的类型转换
e.g. 123 + “4” => "1234"
V. "typeof", "==", "===" Operators
1. "typeof"可应用于变量或者值
2. "=="在JS中是意等,不同变量比较的结果基于类型转换的结果
3. “===”相当于其他语言的双等号,比较时同时对变量类型和它们的值
VI. Type Coercion and Summary
1. 每种变量类型的具体值在JS中都有与其对应的布尔值
null, undefined, 0, ""对应于布尔值的false,即使用这些值与false进行双等比较时,结果将为true
2. 通过这种特性,可以直接使用变量作为判断条件。而Java不允许使用非布尔型变量或者式子作为判断条件
e.g. 在Java中使用
int a = 0;
if (a) { //编译错误,使用a+b(b也为int类型)等也会出现编译错误
// code here
}
在JS中则会根据变量的类型转换结果来进行条件判断
基于youtube JavaBrain视频系列 - JavaScript for Developers Unit02
I. 变量
变量的声明和赋值(Declaration and Definition)
var value = 42;
或者var value; value = 42;
JavaScript是弱类型语言,没有变量类型,声明变量时不需要指明类型
这不同于强类型语言(e.g. C/Java/C++)
任何类型都可以赋给某个变量,而且可以前后分别赋给不同的类型
II. Primitive Types
JavaScript一共有五种基础变量类型(Primitive Types)
(1) Number: 包括了其他语言中一般数字类型,int, double, float。在JavaScript中使用64位双精度储存
比如 var a = 1; 实际在JS中表示为1.0000...
Q: Is 42 equal to 42.0? 无论使用双等还是triple equal,
42都等于42.0
(2) String: JS没有char类型来代表单个字符。String类型使用16位unicode储存
(3) Boolean: true or false
(4) Undefined: 只有一个值“undefined”,注意结尾有d
undefined是指变量声明(declaration)了但是没有赋值(definition),即var value;之后,value声明了但是未赋值,这时打印value为"undefined"
(5) Null: 也只有一个取值“null”
*(6) Symbol: EMCAScript6新增加的类型,类似于其他语言的枚举类型
Q
III. Difference between Undefined and Null
not saw it v.s. not applicable
IV. Types Summary
1. No need to declare type for a variable
2. A variable can be assigned to different types
3. No scoping information,不同于Java语言没有public, private等变量范围声明
4. Variables are interrogated,由于属于弱类型语言,变量在操作时需要知道与它进行操作的变量是什么类型,必要时需要进行自动的类型转换
e.g. 123 + “4” => "1234"
V. "typeof", "==", "===" Operators
1. "typeof"可应用于变量或者值
2. "=="在JS中是意等,不同变量比较的结果基于类型转换的结果
3. “===”相当于其他语言的双等号,比较时同时对变量类型和它们的值
VI. Type Coercion and Summary
1. 每种变量类型的具体值在JS中都有与其对应的布尔值
null, undefined, 0, ""对应于布尔值的false,即使用这些值与false进行双等比较时,结果将为true
2. 通过这种特性,可以直接使用变量作为判断条件。而Java不允许使用非布尔型变量或者式子作为判断条件
e.g. 在Java中使用
int a = 0;
if (a) { //编译错误,使用a+b(b也为int类型)等也会出现编译错误
// code here
}
在JS中则会根据变量的类型转换结果来进行条件判断
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- html5 web数据存储
- 最后一次说说闭包
- Ajax
- SEO
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- [译] React 入门
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法