zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    流 例题

    容器集合整理
    容器集合
    容器 集合知识点
    面向对象回顾
    面向对象例题
    Java常用的8大排序算法
    Java中两个动态代理
    为什么synchronized无法禁止指令重排,却能保证有序性
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2062396.html
Copyright © 2011-2022 走看看