Skip to content
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

【JavaScript】【学习心得】学习 JavaScript 第二十二天 #24

Open
paddingme opened this issue Dec 8, 2014 · 0 comments
Open

Comments

@paddingme
Copy link
Owner

1. 空白

空白用来间隔字符序列,这个很好理解。另Javascript 采取两种注释方法块注释/* /和行注释//我们使用//,因为/ */中会偶尔遇到正则表达式的注释会导致错误。

2. 标识符

标识符有一个字母开头,其后可加一个或多个字母、数字或下划线。不允许使用保留字。

undefined , NaNInfinity 却不是保留字。JavaScript 不允许使用保留字来命名参数或者变量,也不允许在对象字面量中,或者再一个属性存取表达式的点号之后,使用保留字作为对象的属性名。

3. 数字

数字类型在内部表示为 64 位的浮点数。如果一个数字字面量有指数构成,则其值为由 e 之前的部分乘以 10 的 e 之后的部分的次方计算出来的值。** NaN 是一个不等于任何值,甚至包括其自身的值**。

4. 字符串

字符串字面量可以被包围在双引号或单引号之中,包含 0 个或多个字符。JavaScript 中的所有字符都为 16 位。\ 为转移字符,\u 约定允许指定用数字表示的字符码位。如"A"==="\u0041"

(这里说下===和==的区别)
==(相等运算法),===(严格相等运算符) JavaScript 对象的比较是引用的比较,非值的比较,对象和其本身相等,和其他任何对象不相等。 === 首先计算其操作数的值,然后比较,比较过程无任何类型转换。 == 如果两个操作数不是同一类型的,则相等运算符进行一些类型转换进行比较。 == 这里截取 JavaScript 相等表格上的的两张图片让大家更为直观的感受下。

关于===的相等表格

关于==的相等表格

引用下温特大大的总结就是:只要记住 null 只和undefined 相等,有 number 都转 number,有 boolean 也转 number,有 string 都转 string,对象互相不等,NaN 互相不等就可以了

字符串一旦创建无法改变,通过 + 可以连接字符串形成一个新的字符串。'c' + 'a' + 't' === 'cat' 就很好理解了,'c' + 'a' + 't'连接后创建了一个新的字符串和 'cat' 有着完全相同的字符和字符顺序所以严格相等。

5. 语句

Javascript 依赖于全局变量进行连接,所有编译单元的所有级别对象都被抛入全局对象的公共命名空间中。当 var 语句被用在函数的内部时,他定义了这个函数的私有变量。
switchwhilefor、和 do ss语句允许一个可选的前置 label 配合 break 一起使用。
语句的执行顺序:从上到下。Javascript 可用过条件语句(if, switch),循环语句(for, while, do),强制跳转语句(return, break, throw 和函数调用来改变执行顺序。
false, null, undefined,空字符串 '',数字 0,数字 NaN都为假,其余皆为真。
for 循环有两种形式,for(var i=0; i < arr.length,i++){}for(i in arr){},后者枚举一个对象的所有属性名(或键名),在每次循环中,对象的另一个属性名字付串被复制给 forin 之间的变量。
object.hasOwnProperty(variable)来检测是否为该对象的成员,还是从原型链里找到的。

for(myvar in obj){
     if(object.hasOwnProperty(myvar)){
         ...
     }
}

Javascript 不允许在 return 关键字和表示式之间换行,同样不允许 break 关键字和标签之间换行。

6. 表达式

最简单的表达式是字面量值(比如字符串或数字)、变量、内置的值(truefalsenullundefinedNaNInfinity)、以 new 前导的调用表达式、以 delete前导的属性存取表达式、包在圆括号中的表达式、以一个前缀运算符作为前导的表达式,或者表达式后面跟着:

  • 一个插入运算符与另一个表达式;
  • 三元运算符?后面跟着另一个表达式,然后接一个:,再然后接第 -三个表达式;
  • 一个函数调用;
  • 一个属性存取表达式。

**函数调用引发函数的执行,函数调用运算符是跟随在函数名后面的一对圆括号。**圆括号中可能包含将会传递给这个函数的参数。一个属性存取表达式用于指定一个对象或数组的属性或元素。

下表按从最高到最低的优先级列出 JavaScript 运算符。具有相同优先级的运算符按从左至右的顺序求值。

运算符 描述
. 字段访问、数组下标、函数调用以及表达式分组
++ -- - ~ ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义值
* / % 乘法、除法、取模
+ - + 加法、减法、字符串连接
<< >> >>> 移位
< <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof
== != === !== 等于、不等于、严格相等、非严格相等
& 按位与
^ 按位异或
&& 逻辑与
?: 条件
= oP= 赋值、运算赋值
, 多重求值

type of 运算符产生的值有 'number'、'string'、'boolean'、'undefined'、'function' 和 'object'(注意都是小写)如果运算数是一个数组或者 null,那么结果是 object,这是不对的额这里作何解?

7. 字面量

对象字面量是一种方便指定新对象的表示法。属性名可是标识符或者字符串。数组字面量是一个方便指定新数组的表示法,函数字面量定义了函数值(后续相继详细介绍)。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant