JavaScript的基本概念----基本语法与变量

来源:互联网 发布:php 调用私有方法 编辑:程序博客网 时间:2024/06/05 21:04

一.语法

1. 区分大小写

    就是说Test和test是两个变量

2. 标识符

    标识符:变量,函数,属性的名字,或者函数的参数        1)第一个字符必须是字母,下划线(_)或者$(不能是数字)        2)其他的字符可以是字母,下划线,美元或者数字        3)不能把关键字、保留字、true、false和null作为标识符。    命名的方式:驼峰命名法googStrudent

3. 注释

    ECMAScript使用C风格的注释,包括单行注释和块级注释。    // 单行注释    /*    * 这是一个多行    * 注释    */

4.严格模式

    在ECMAScript5中引用了严格模式的概念。严格模式是为js定义了一种不同的解析模式和执行模型。在严格模式下ES3的一些不确定的行为将得到处理,对于某些不安全的操作将抛出错误。    function add(){        "use strict";        //函数体    }    使用的浏览器:IE10+,Firefox4+,Safari5.1+,Opera12+,Chrome

5. 语句

    ES中的语句以分号结尾,如果没有加,将由解析器确定分号的位置。    var a = 10     //也是有效的但是不推荐    var b = 20;    //推荐    虽然分号不是必须的但是,我们一般上线的代码都是要压缩的,如果没有分号很有可能会照成错误。    并且在莫种程度上可以增加代码的性能,因为解析器不再用花时间推测在哪里加分号。

二.关键字和保留字

        ECMAScript-262描述了一组具有特定用途的关键字,一般用于控制语句的开始或结束,或者用于执行特定的操作等。关键字也是语言保留的,不能用作标识符。        ECMAScript全部关键字        break   else    new var        case    finally return  void        catch   for switch  while        continue    function    this    with        default if  throw           delete  in  try         do  instanceof  typeof          ECMAScript-262还描述了另一组不能用作标识符的保留字。尽管保留字在JavaScript中还没有特定的用途,但它们很有可能在将来被用作关键字。        ECMAScript-262第3版定义的全部保留字        abstract    enum    int     short        boolean export  interface   static        byte    extends long    super        char    final   native  synchronized        class   float   package throws        const   goto    private transient        debugger    implements  protected   volatile        double  import  public  

三. 定义变量

    ECMAScript的变量是松散类型的,所谓松散类型就是用来保存任何类型的数据。定义变量时要使用var操作符(var是关键),后面跟一个变量名(变量名是标识符)。    var box;     alert(box);    这句话定义了box变量,但没有对它进行初始化(也就是没有给变量赋值)。这时,系统会给它一个特殊的值 -- undefined(表示未定义)。    var box= 'javascript';    alert(box);//javascript    所谓变量,就是可以初始化后可以再次改变的量。ECMAScript属于弱类型(松散类型)的语言,可以同时改变不同类型的量。(PS:虽然可以改变不同类型的量,但这样做对于后期维护带来困难,而且性能也不高,导致成本很高!)    var boxString = 'javascript';    boxString = 100;        alert(boxString);//100    重复的使用var声明一个变量,只不过是一个赋值操作,并不会报错。但这样的操作是比较二的,没有任何必要。    var box= 'javascript';    var box= 'java';    当你想声明多个变量的时候,可以在一行或者多行操作。    var box= 'javascript'; like = "java";    而当你每条语句都在不同行的时候,你可以省略分号。(PS:这是ECMAScript支持的,但绝对是一个非常不好的编程习惯,切记不要)。    var box= 'javascript'    var age= 100    alert(box)    可以使用一条语句定义多个变量,只要把每个变量(初始化或者不初始化均可)用逗号分隔开即可,为了可读性,每个变量,最好另起一行,并且第二变量和第一变量对齐(PS:这些都不是必须的)。    var box= 'javascript',        like = "java";    还有一种变量不需要前面var关键字即可创建变量。这种变量和var的变量有一定的区别和作用范围,    box= 'javascript';//有效但是不推荐    使用var 定义的变量将会成为定义该变量的局部变量,也就是说在一个函数中定义一个变量,该变量会在函数退出后被销毁。
        function add(){            var a = 10;//局部变量        }        add();        conosle.log(a);//错误
    调用add时a变量被创建,并被赋值,之后a被销毁。
        function add(){            a = 10;//全局变量        }        add();        conosle.log(a);//10
    调用add时a变量被创建,并被赋值,a是全局变量所以在add执行完后不会被销毁。    ps:不建议这样使用,因为a这个全局变量不是一开始就有的,而是add调用后产生的,容易造成混乱并且很难维护

四. 数据类型

基本数据类型:number string boolean unll undefined复杂的数据类型:object

1. typeof

    结果为:    “undefined”:没有定义    “number”:数值    “string”:字符串    “boolean”:布尔值    “function”:函数    “object”:对象或者null

2. undefined

    在使用var声明但是没有加以初始化,这个变量就是undefined;    例如:var a;    console.log(a)//undefined

3. null

    从逻辑上看,null表示的是空指针,这就是为何typeof null返回object的原因。    如果定义的变量将来要用来保存对象,最好将该变量初始化为null;    例如 var a = null;    if(a != null){        //对a对象进行某种操作    }

4. Boolean类型

    布尔类型使用的比较多的,true(非0,非空字符串,任何对象,),false(0或NaN,空字符串,null,undefined);    注意,False和True并不是布尔值。

5. Number

1. 浮点数值

    如:1.0 会解析为1        .1 会解析为0.1(但是一般不推荐这么写)

2. NaN

    NaN,非数值,是一个特殊的数值。这个数值用来表示本来应该返回数值的操作没有返回数值的情况。例如:任何数值/0=NaN;    NaN特点:1.任何的数值和NaN进行操作都是NaN;             2.NaN与任何的数值都不等,包括其自身。    可以通过isNaN()来判断是不是NaN;    isNaN(NaN)    //true    isNaN(false)    //false,false转化为了0    isNaN(true)    //false,true转化为了1    isNaN(“10”)    //false,转化为了数字10    isNaN(“asd”)    //true,“asd”不能转化为数字

3. 数值转换

        1. Number()            Number("oo")    //NaN,转化不了数值            Number(false)    //0            Number(true)    //1            Number("123")    //123            Number("123.0")    //123,小数点后面的0一般会被省去            Number(null)    //0            Number(undefined)    //NaN

2.parseInt()

            比较常用,会忽略字符串前面的空格,直到找到第一个非字符,如果第一个字符不是数字或者负号,返回NaN            parseInt("")         //NaN            parseInt("123asd")   //123            parseInt("22.5")     //22            parseInt("070")      //70        3.paseFloat()            第一个小数点有效,第二后以后的无效            parseFloat("")         //NaN            parseFloat("123asd")   //123            parseFloat("22.5")     //22.5            parseFloat(" 070")      //70            parseFloat("2.46.78")   //2.46

6. String

    利用双引号或者单引号包裹    \n    换行    \t    制表 

1. length

    空格和\n相当于一个字符    “ a”.length = 2;    "a\n".lenght = 2;

2. toString()转化为字符串

    null和undefined不能用这个方法    var a = false;    a.toString()     //"false"

3. String转化为字符串

    能用toString的,和String结果是一样的,不能用的如null和undefined会转化为“null”或“undefined”    String(undefined)//“undefined”

7. Object

    Object其实是一群数据和功能的集合    var obj = new Object();    创建一个Object的实例obj,每一个实例中都含有Object的属性和方法:    1.Constructor(构造函数):保存着用来创建当对象的函数。上面的例子构造函数就是Object();    2.hasOwnProperty:用来检查给定的属性是实例对象的(而不是原型的);        例如:a.hasOwnProperty("name");        返回true表示a对象中有name属性,false表示a对象没有该属性,是原型的。    3.isPrototypeOf:用来检查传入的对象是不是另外一个对象的原型。    4.propertyIsEnumerable:用来检查给定的属性能否用for-in枚举。        例如:a.propertyIsEnumerable("name")        返回true表示可以,false表示不能。    5.toLocaleString:转换为本地字符串    6.toString:对象的字符串表示    7.valueOf:返回对象的字符串,布尔值和数值的表示
原创粉丝点击