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。

原文地址:https://www.cnblogs.com/Leo_wl/p/2062396.html