美文网首页
JS基础知识点搜集

JS基础知识点搜集

作者: _Lily | 来源:发表于2016-01-04 22:45 被阅读63次

    最近接触到JS的知识,在网上搜集了一些前辈们总结的资料,以供后面学习参考。

    1、javascript语法

    a、javascript的变量名、函数、运算符是区分大小写的

    b、变量是弱类型的,ECMAScript不像Java,C++。ECMAScript中的变量无特定的类型。定义变量用var。

    c、每行结尾的“;”可以有也可以没有

    d、javascript注释是"/*js content */"

    2、javascript变量

    a、javascipt中定义变量是:var test="hello js";(其中var 是 variable的缩写。)并且给test变量初始值为“hello js”

    b、ECMAjavascipt中定义变量可以不初始化。如:var test;

    c、javascipt的变量是弱类型的,所以变量可以存储不同类型的值。如:var test="hello js"; test=123;

    d、变量名规则:第一个字符必须是字母、下划线、或者是美无符号($)

    e、变量名的命名规则

    》Camel标记法--首字母小写的,接下来的单词都以大写字母开头

    例:var myTestValue; var myResult;

    》Pascal标记法--首字母是大写的,接下来的单词都以大写字母开头

    例:var MyTestValue; var MyResult;

    》匈牙利标记法--在以Pascal标记法的基础上,在变量前面添加一个小写字母说明该变量的类型。

    例:var iMyTestValue =55; var sMyResult="Hello js";

    3、原始值,引用值(参考http://fehacker.com/2014/12/19/call-by-sharing/提供的讲解)

    a、原始值

    比如Undefined,Null,Boolean,Number,String。存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。这是因为这些原始类型占据的空间是固定的,所以可将他们存储在较小的内存区域 - 栈中。这样存储便于迅速查寻变量的值。

    b、引用值

    也就是对象类型 Object type,比如Object,Array,Function,Date等。存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存地址。这是因为:引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查寻的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址。地址的大小是固定的,所以把它存储在栈中对变量性能无任何负面影响。

    4、几个重要的原始类型

    a、Undefined 类型

    此类型只有一个值即:undefined。当声明变量未初始化时,该变量的值为undefined。

    即:var test;alert(test);则输出undefined。

    注意:值undefined并不同于未定义的值。但是:typeof运算符并不真正的区分这两种值请关注以下代码:

    var oTemp;

    alert(typeof oTemp); 输出 “undefined”;

    alert(typeof oTemp2); /*没有任何地方定义oTemp2*/ 输出"undefined";

    但是在没有定义变量的情况下却不可以这样使用:alert(oTemp2 == undefined);//这会产生一个错误:变量未定义

    当函数没有明确返回值,那么这个函数的返回值默认为:undefined。

    b、Null类型

    Null类型也只有一个专用值null,值undefined其实是从null派生来的,因此:

    alert(null == undefined); //输出true

    此二值虽然相等,但是其含义并不相同。undefined是声明了变量,但对其初始化时并未给该变量赋值;null则用于表示尚未存在的对象。如果函数的返回值为对象,那么当找不着对象时则返回的通常是null。

    c、Boolean类型

    Boolean类型有两个值true/false。

    在类型转换过程中:空字符串 == false;数字 0==false ;非零数字和非空字符串== true;

    默认情况下:"null==true/false"均返回false,"undefined==true/false"也返回false

    var oFalseObject = new Boolean(false);

    var result = oFalseObject && true;//此处最终结果是 true,因为此处and 操作会自动将oFalseObject对象转换为true,而不是取此对象的值。所以此处返回值是true;

    强类型转换时:var b = new Boolean(null); 则b的最终结果是false; var b = new Boolean(undefined);亦然

    5、函数

    函数是一组随时随地可以运行的语句,由关键字function、一组参数、以及置于括号内的代码组成的。

    如果函数未使用return 语句或者使用了空的return;语句那么此函数的返回值是undefined.

    在ECMAScript中函数是不可以重载的,如果在同一区域有两个函数使用了相同的名称,不会引发错误,但是当代码执行的时候真正使用的是第二个函数。

    arguments对象:代函数代码中,可以使用特殊对象,开发者不用明确指出此参数名,就能访问他们。arguments便是整个函数的所有参数列表数组。

    阅读拓展:

    http://www.jb51.net/article/21457.htm

    http://www.cnblogs.com/huajs/archive/2011/11/05/2237091.html

    http://blog.sina.com.cn/s/blog_6fd4b3c10101dpv2.html

    http://www.jb51.net/article/47699.htm

    相关文章

      网友评论

          本文标题:JS基础知识点搜集

          本文链接:https://www.haomeiwen.com/subject/pvdahttx.html