zoukankan      html  css  js  c++  java
  • JS快速上手-基础Javascript

    1.1背景

    1.1.1 ECMAScript与javascript

    ECMAScript是javascript的官方命名。因为java已经是一个商标。如今,一些早前收到过授权的公司,如Moailla,是允许是有javascript这个名字的。使用javascript这个名字通常需要遵守一下规则:

             ~Javascript指的是一种编程语言。

             ~ECMAScript是这种语言规范的名字。so,每当提到这种语言的版本时,就是指ECMAScript.

    1.1.2 javascript的影响和本质

    javascript的创造者Brendan Eich.当时除了自己快速的创造这种语言外没别的选择(或者说,如果他不够快的话,Netscape公司将采用更糟糕的技术《Netscape/网景通信公司》)。

    他借鉴了各种编程语言,如Java(语法、原始值和对象),Scheme、AWK(第一类函数),Self(原型继承)、Perl和Python(字符串、数组和正则表达式)。

    直到ECMAScript 3之前,javascript都没有异常处理,这也是为什么他经常会自动转换值和静默失败的原因:他最初不能抛出异常。

    一方面,javascript 有些怪异和功能缺失(比如块作用域、模块、子类支持等)。另一方面,他有许多强大的特性可以来弥补这些问题。在其他的语言里,我们学的是语言特性,而在jsvascript中,我们常学到的是模式。

    有鉴于此,javascript支持函数式编程(高阶函数、内置的map 和 reduce等)和面向对象编程(对象、继承)的混合编程风格也就不足为奇了。

    1.2 语法

    1.2.1 语法概述

    // two slashes start single-line comments 两条斜杠开始单行注释

    var x;            //declaring a value to the variable 'x'   声明一个变量

    x = 3 + y;      //assigning a value to the variable 'x'  将变量赋值给‘x’

    foo(x,y);       //calling function 'foo' with parameters 'x' and 'y'  调用带参x,y的函数

    obj.bar(3);     //calling method 'bar' of object 'obj'  调用方法“bar”的对象 'obj';

    // A conditional statement 一个条件语句

    if (x === 0){     //Is 'x' equal to zero?  'x'等于零吗?

          x = 123;

    }

    “=”“==”和“===”的区别:http://www.cnblogs.com/liuqingxia/p/7792890.html

    //Defining function 'baz' width parameters 'a' and 'b' 定义带参a,b函数‘baz’

    function baz(a,b){

         return a + b

    }

    1.2.2 语句和表达式

    要理解javascript的语法,需要认识他的两大语法类别:语句和表达式。

    ~ 语句“做事情”。程序其实就是一系列的语句的集合。如这个语句的示例,他用来声明(或创建)一个变量 foo:

        var foo;

    ~ 表达式产生值。他们通常是函数的参数,或是赋值的右边部分。比如:

       3 * 7

    js中有两种方式来实现 if - then - else,者可以很好的说明语句和表达式之间的区别。语句的方式:

    var x;

    if ( y > = 0){

        x = y;

    }else {

       x = -y;

    }

    表达式的方式: var x = y >= 0? y : -y

    后面这种方式可以用于函数的参数(前面的不行):

    myFunction(y >= 0 ? y : -y)

    1.3 变量和赋值

    js里变量在声明后使用: var foo;

    1.3.1 赋值

    变量声明和赋值可以同时进行: var foo = 6;

    也可以为一个已有变量赋值: foo = 4;

    1.3.2 复合赋值运算符

    在js中还会有复合赋值运算符,如 +=。以下两种赋值实际上是相等的:

    x += 1;

    x = x + 1;

    复合赋值运算符详解:

    1.3.3 标识符与保留字

    标识符:

    区分大小写,变量的名字都是标识符。Class与class就是不同的标识符。

    标识符的首字符可以使下划线(_)、美元符($)、字母;

    标识符除首字符外可以是下划线(_)、美元符($)、数字、字母。

    例如:

    _anh7、$ahn、asadas 合法的

    1sds、class、room# 是不合法的

    保留字:是语法的一部分,不能作为变量名使用(包括函数名和参数名):

    arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while

    以下3个标识符不是保留字,但同样需要视为保留字:

    Infinity、NaN、undefined

  • 相关阅读:
    tomcat(5)-如何查看linux环境下的tomcat版本?
    【PAT甲级】1023 Have Fun with Numbers (20 分)
    Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)D(树状数组)
    【PAT甲级】1022 Digital Library (30 分)(模拟)
    Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)B(SET)
    Codeforces Round #551 (Div. 2)D(树形DP)
    Atcoder Grand Contest 037C(贪心,优先队列,思维)
    Codeforces Round #580 (Div. 2)D(思维,Floyd暴力最小环)
    Atcoder Grand Contest 037B(DP,组合数学,思维)
    Atcoder Grand Contest 037A(贪心,思维)
  • 原文地址:https://www.cnblogs.com/liuqingxia/p/7792292.html
Copyright © 2011-2022 走看看