好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Distilled

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/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Distilled的详细内容...

  阅读:59次