Skip to content

Update Types.md #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions chapters/JavaScript_Core/JavaScript_Basics/Types.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ JavaScript使用undefined标识变量没有初始化。例如函数没有返回
JavaScript语言核心包括Date()构造函数, 用来创建表示日期和时间的对象。这些日期对象的方法为日期计算通过了简单的API:

var then = new Date(2011, 0, 1); // 2011年1月1日
var later = new Date(2011, 0, 1, 17, 10, 30) //同一天,当地时间510:30pm,
var later = new Date(2011, 0, 1, 17, 10, 30) //同一天,当地时间5:10:30pm,
var now = new Date(); //当前日期和时间
var elapsed = now - then; //日期减法: 计算时间间隔的毫秒数
later.getFullYear() // => 2011
Expand All @@ -143,7 +143,7 @@ JavaScript语言核心包括Date()构造函数, 用来创建表示日期和时

var i = "abcdefg";

在JavaScript字符串中,反斜线\有着特殊的用途,反斜线符号后加一个字符,就不再表示它们的字面含义了,不如\n就是一个转义字符,它表示一个换行符。
在JavaScript字符串中,反斜线\有着特殊的用途,反斜线符号后加一个字符,就不再表示它们的字面含义了,比如\n就是一个转义字符,它表示一个换行符。

'You\'re right, it can\'t be a quote'

Expand All @@ -157,18 +157,18 @@ JavaScript的内置功能之一就是字符串连接:

除了length属性, 字符串还提供许多可以调用的方法:

var s = "hello, world" //定义一个字符串
s.charAt(0) // => "h" 第一个字符
s.charAt(s.length-1) // => "d" 最后一个字符
s.substring(1, 4) // => "ell" 第2-4个字符
s.slice(1,4) // => "ell" 同上
s.slice(-3) // => "rld": 最后三个字符
s.indexOf("l") // => 2 字符l首次出现的位置
s.lastIndexOf("l") // => 10: 字符l最后一次出现的位置
s.indexOf("l", 3) // => 在位置3及之后首次出现字符l的位置
s.split(",") // => ["hello", "world"]分割成子串
s.replace("h", "H") // => "Hello, world": 全文字符替换
s.toUpperCase() // => "HELLO WORLD"
var s = "hello, world" // => 定义一个字符串
s.charAt(0) // => "h" 第一个字符
s.charAt(s.length-1) // => "d" 最后一个字符
s.substring(1, 4) // => "ell" 第2-4个字符
s.slice(1,4) // => "ell" 同上
s.slice(-3) // => "rld": 最后三个字符
s.indexOf("l") // => 2 字符l首次出现的位置
s.lastIndexOf("l") // => 10: 字符l最后一次出现的位置
s.indexOf("l", 3) // => 在位置3及之后首次出现字符l的位置
s.split(",") // => ["hello", "world"]分割成子串
s.replace("h", "H") // => "Hello, world": 全文字符替换
s.toUpperCase() // => "HELLO WORLD"

## 全局对象

Expand All @@ -190,8 +190,8 @@ JavaScript的内置功能之一就是字符串连接:
字符串既然不是对象,为什么它会有属性呢?只要引用了字符串s的属性,JavaScript就会将字符串值通过调用new String(s)的方式转换成对象,
同字符串一样,数字和布尔值也有相应的方法。其他类似的包装类:

* Number object
* String object
* Number Object
* String Object
* Boolean Object
* Function Object
* RegExp Object
Expand All @@ -204,7 +204,7 @@ JavaScript的内置功能之一就是字符串连接:

### 不可变的原始值和可变的原始对象引用

原始值是不可改变的,原始值的比较是值比较, 对象的比较并非值比较:即使两个对象包含同样的属性以及相同的值,他们也不是相等的。我们通常将对象称为引用类型,对象的值都是引用,对象的比较也是引用的比较,当且仅当他们引用同一个基独享,他们才相等
原始值是不可改变的,原始值的比较是值比较, 对象的比较并非值比较:即使两个对象包含同样的属性以及相同的值,他们也不是相等的。我们通常将对象称为引用类型,对象的值都是引用,对象的比较也是引用的比较,当且仅当他们引用同一个基独享,他们才相等

## 类型转换

Expand Down Expand Up @@ -287,7 +287,7 @@ parseFloat(string)函数,将字符串转换为浮点数类型的数值。
parseFloat("1.0") // => 1


toString(radix)方法。除undefined和null之外的所有类型的值都具有toString()方法,其 作用是返回对象的字符串表示
toString(radix)方法。除undefined和null之外的所有类型的值都具有toString()方法,其作用是返回对象的字符串表示

对象 操作
Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。
Expand Down Expand Up @@ -358,8 +358,8 @@ isNaN()函数,经测试发现,该函数会尝试将参数值用Number()进
可以看出,加法运算中,如果有一个操作值为字符串类型,则将另一个操作值转换为字符串,最后连接起来。
### 乘除、减号运算符、取模运算符

这些操作符针对的是运算,所以他们具有共同性:如果操作值之一不是数值,则被隐式调用Number()函数进行转换。具体每一种运算的详细规则请参 考ECMAScript中的定义
### 逻辑操作符(!、&&、||)
这些操作符针对的是运算,所以他们具有共同性:如果操作值之一不是数值,则被隐式调用Number()函数进行转换。具体每一种运算的详细规则请参考ECMAScript中的定义
### 逻辑操作符(!,&&,||)
逻辑非(!)操作符首先通过Boolean()函数将它的操作值转换为布尔值,然后求反。
逻辑与(&&)操作符,如果一个操作值不是布尔值时,遵循以下规则进行转换:

Expand All @@ -380,7 +380,7 @@ isNaN()函数,经测试发现,该函数会尝试将参数值用Number()进
- 如果两个操作值都是数值,则进行数值比较
- 如果两个操作值都是字符串,则比较字符串对应的字符编码值
- 如果只有一个操作值是数值,则将另一个操作值转换为数值,进行数值比较
- 如果一个操作数是对象,则调用valueOf()方法(如果对象没有valueOf()方法则调用toString()方法),得到的结果按照前 面的规则执行比较
- 如果一个操作数是对象,则调用valueOf()方法(如果对象没有valueOf()方法则调用toString()方法),得到的结果按照前面的规则执行比较
- 如果一个操作值是布尔值,则将其转换为数值,再进行比较

注:NaN是非常特殊的值,它不和任何类型的值相等,包括它自己,同时它与任何类型的值比较大小时都返回false。
Expand Down