Distilled
JavaScript 是一种动态的,弱类型的,基于原型的,面向对象的解释型语言。函数是JavaScript中的头等公民。
一、语句:
1.if 语句
var dayOfWeek = 0 ;
if (dayOfWeek === 6 ){
}
else if (dayOfWeek === 0 ){
}
else {
}
2.switch 语句
var dayOfWeek = 0 ;
switch (dayOfWeek){
case 6 :
break ;
case 0 :
break ;
default :
break ;
}
switch 语句将switch表达式的值和所有指定的Case表达式进行精确匹配(===)。当找到一个匹配时,执行匹配的case从句中的语句。如果没有找到任何匹配,则执行可选的default语句。
3.while 语句
var count = 0 ;
while (count <= 10 ){
count ++ ;
}
4.do/while 语句
var count = 0 ;
do {
count ++ ;
} while (count <= 10 );
5.for 语句
for ( var count = 0 ;count <= 10 ;count ++ ){
}
6.for/in 语句
var customer = {Name: " Julius " , Age: 30 };
for ( var propName in customer){
if (customer.hasOwnProperty(propName)){
}
}
通常需要调用hasOwnProperty(propName)方法来确定这个属性名是该对象的成员,还是从其原型链里找到的。
7.try/catch 语句
try {
}
catch (e){
}
8.throw 语句
throw {
name: ' ArgumentOutOfRangeError ' ,
message: ' year must > 0 '
}
9.return 语句
return " Red " ;
return 语句会使一个函数提前返回。它也可以指定要被返回的值。如果没有指定返回表达式,那么其值是undefined。
二、运算符
. [] () 属性存取及函数调用
delete new typeof + - ! 一元运算符
* / % 乘法,除法,取模
+ - 加法/连接,减法
>= <= > < 不等式运算符
=== !== 等式运算符
&& 逻辑与
|| 逻辑或
?: 三元运算符
typeof运算符产生的值有'number'、'string'、'boolean'、'undefined'、'function'、'object'。如果运算数是一个数组或null,结果是'object'。
检测null:
if (value === null ){
}
检测数组:
var isArray = function (obj){
return Object.prototype.toString.call(obj) === " [object Array] " ;
};
三、类型:
1. 数字
var value = 1.0 ;
JavaScript 只有一个单一的数字类型。他在内部被表示为64位的浮点数。
特殊数值:
NaN 非数字的特殊值
Infinity 无穷大的特殊值
2. 字符串
var value = " One " ;
JavaScript 字符串是一个由16位的Unicode字符组成的序列。字符串字面量可以被包围在单引号或双引号中。
字符串转义:
\" \' \\
\b 退格符
\f 换页符
\n 换行符
\r 回车符
\t 制表符
\uXXXX 由4位16进制XXXX指定的Unicode字符
3. 布尔值
var value = true ;
布尔值只有2个值:true和false。
下列值被当作假值:
false
null
undefined
空字符串''
数字0
数字NaN
4.null
var value = null ; // null
JavaScript 中null是一个特殊的值,表示“无值”。
5.undefined
var value; // undefined
JavaScript 中undefined是一个特殊的值。在使用一个未声明的变量,或已声明但还未赋值的变量,以及并不存在的对象属性时,将返回undefined。
6. 对象
var car = {
brand: " Honda " ,
color: " Red " ,
run: function (){
// run
}
};
var value = car.brand;
JavaScript 中的对象是可变的键值集合。对象是属性的容器,其中每个属性都拥有名字和值。属性的名字可以是包括空字符串在内的任意字符串。属性值可以是除undefined值之外的任何值。
原型:
car.prototype.stop = function (){
// stop
};
car.stop();
每个对象都连接到一个原型对象,并且它可以从中继承属性。原型连接在更新时是不起作用的。它只有在检索值的时候才被使用。
模块化:
var App = {};
App.employee = {
name: " Joyce "
}
App.customer = {
name: " Jason "
}
7. 函数
var add = function (a,b){
return a + b;
};
add( 1 + 2 );
JavaScript 中函数就是对象。函数可以被定义在其它函数中。一个内部函数可以访问包围它的外部函数的参数和变量(this和arguments除外)。这被称为闭包。
闭包:
代码
var car = function (brand,color){
return {
getBrand: function (){
return brand;
},
getColor: function (){
return color;
}
};
};
var myCar = car( " Honda " , " Red " );
myCar.getBrand();
函数化继承:
代码
var mammal = function (spec) {
var that = {};
that.getName = function () {
return spec.name;
};
that.says = function () {
return spec.saying || '' ;
};
return that;
};
var myMammal = mammal({name: ' Herb ' });
var cat = function (spec) {
spec.saying = spec.saying || ' meow ' ;
var that = mammal(spec);
that.purr = function (n) {
// purr
};
that.getName = function () {
return that.says() + ' ' + spec.name + ' ' + that.says();
};
return that;
};
var myCat = cat({name: ' Henrietta ' });
8. 数组
var colors = [ " Red " , " Yellow " , " Blue " ];
var value = colors[ 0 ]; // "Red"
数组和对象一样是键值集合。所不同的是,数组可以用整数做为属性名。数组还提供了一套非常有用的内置方法。
每个数组都有一个length属性。length属性的值是这个数组的最大整数属性名加上1。它不一定等于数组里的属性的个数。
9. 正则表达式
var numberRegex = / ^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$ / i;
numberRegex.test( 1.2 ); // true
正则表达式分组:
() 捕获型分组
(?:) 非捕获型分组
正则表达式转义:
\\ \/ \[ \] \( \) \{ \} \? \+ \* \| \. \^ \$
\f 换页符
\n 换行符
\r 回车符
\t 制表符
\uXXXX 由4位16进制XXXX指定的Unicode字符
\d 匹配一个数字(等同于[0-9])。\D则表示与其相反(等同于[^0-9])
\s 匹配Unicode空白符的一个不完全子集(等同于[\f\n\r\t\u000B\u0020\u00A0\u2028\u2029])。\S则表示与其相反
\1 捕获型分组1的引用(\2依此类推)
正则表达式类转义:
\- \\ \/ \[ \] \^
\b 退格符
\f 换页符
\n 换行符
\r 回车符
\t 制表符
\uXXXX 由4位16进制XXXX指定的Unicode字符
\d 匹配一个数字(等同于[0-9])。\D则表示与其相反(等同于[^0-9])
\s 匹配Unicode空白符的一个不完全子集(等同于[\f\n\r\t\u000B\u0020\u00A0\u2028\u2029])。\S则表示与其相反
正则表达式量词:
? 匹配0或1次(同{0,1})
* 匹配0或多次(同{0,})
+ 匹配1或多次(同{1,})
{n} 匹配n次
{n,} 匹配至少n次
{n,m} 匹配至少n次,但不能超过m次
正则表达式标志:
g 执行全局匹配(所有匹配)
i 执行不区分大小写匹配
m 执行多行匹配(^和$能匹配行结束符)
10.JSON
var persons=JSON.parse('[{"name":"Jason","born":1980,"isSingle":true},{"name":"Jason","born":1980,"isSingle":true}]');
10.JSON
// ECMAScript 5
var persons = JSON.parse( ' [{"name":"Jason","born":1980,"isSingle":true},{"name":"Jason","born":1980,"isSingle":true}] ' );
var str = JSON.stringify(persons);
JSON是一种轻量级的数据交换格式,它基于JavaScript的对象字面量表示法。JSON有6种类型的值:对象、数组、字符串、数字、布尔值和特殊值null。
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息