您的位置:首页 > Web前端 > JavaScript

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

     


(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中则会根据变量的类型转换结果来进行条件判断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 前端