zoukankan      html  css  js  c++  java
  • javascript必须知道的知识要点(一)

          该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容。

    1. 语句
    2. 注释
    3. 输出
    4. 字面量
    5. 变量
    6. 数据类型
    7. typeof/constructor属性
    8. 类型转换
    9. 关键字
    10. 运算符
    11. 字符集
    12. 对象
    13. 函数
    14. Arguments 对象
    15. 作用域/变量的生命周期
    16. 变量提升
    17. 严格模式 use strict
    18. 正则表达式
    19. 阻止默认操作
    20. 停止冒泡
    语句
            分号(;)
            代码块
            条件语句:if...else... switch
            循环语句:for   for/in   while   do/while
            break; continue; break与continue的区别
    注释
            //
            /*   */    
    输出
            window.alert();
            document.write();
            innerHTML;
            console.log();
    字面量
    变量
            存储数据的容器
            以'字母','$', '_' 开头,由  ‘字母','$', '_', '数字'  组成
            大小写敏感
            重新声明JavaScript变量,该变量的值不会丢失。eg: var carname="Volvo"; var carname;//变量carname的值依然是“Volvo”
    数据类型
            基本数据类型(原始数据类型)5种:string, number, boolean, null, undefined
            非基本数据类型(引用类型):Array, Object, Function, 原始数据类型对应的对象 eg: var s = new String(); 
            JavaScript拥有动态类型,相同的变量可用作不同的类型
    typeof/constructor属性
            typeof操作符:检测变量的数据类型
            typeof [1,2,3,4]; //object
            typeof null; //object
            var person = null; //值为空,类型为对象 
            var person = undefined; //值为undefined,类型为undefined
       type function () {}; //function
            null 表示空对象引用;
            undefined表示没有设置值的变量;
     
       constructor属性
        [1,2,3,4].constructor //返回函数 Array() {[native code]}
            new Date().constructor //返回函数 Date() {[native code]}
        function () {}.constructor //返回函数 Function () {[native code]}
        {name:'John',age:34}.constructor //返回函数 Object() {[native code]}
     
    类型转换
       5种不同的数据类型:string, number,boolean,object,function
       3种对象类型:Object, Date, Array
            2个不包含任何值的数据类型:null, undefined   
       
        通过javascript函数转换数据类型       
        1.数字转成字符串: String(123); 123.toString();
        2.布尔值转换成字符串:String(false); false.toString();
        3.日期转成字符串:String(Date()); Date().toString();
        4.字符串转成数字:Number("3.14");//返回3.14   Number(99 80);//返回NaN
                 ParseFloat();//解析字符串,返回一个浮点数 
                 ParseInt();//解析字符串,返回一个整数
                 “ + ”可以将变量转换成数字
        5.布尔值转成数字:Number(false);//0
        6.日期转成数字:var d = new Date();
               Number(d);
               d.getTime();
            通过javascript自身自动转换
       1.当javascript尝试操作一个“错误”的数据类型时,会自动转换为“正确”的数据类型。
         2.当你尝试输出一个对象或一个变量时,javascript会自动调用toString()方法。
     
    关键字
    运算符
       算数运算符: +, -, *, /, %, ++, --
       赋值运算符:=, +=, -=, *=, /=, %=
       比较运算符:==, ===, !=, !==, >, <, >=, <=
       逻辑运算符:&&, ||, !
       条件运算符:? : 
    字符集
       unicode
    对象
       javascript对象是拥有属性和方法的数据。
       对象是变量的容器,是键值对的容器。
       访问对象属性的两种方式:eg: person.lastName; person["lastName"];
       定义对象的方法:
        1.工厂方式; 2.构造器函数; 3.原型方式; 4.混合方式(构造函数+原型方式);
        5.动态原型方式; 6.混合工厂方式。
    函数
       JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
       调用带参数的函数。
       带有返回值的函数,return 语句可以实现。
       函数声明:function functionName(parameters){ /*执行的代码*/}
            函数声明后不会立即执行,会在我们需要的时候调用到
       函数表达式:var x = function (a,b){ return a*b;} var z = x(3,4);//12
             以上函数实际上是一个匿名函数。
       Function()构造函数:var myFun = new Function("a", "b", "return a*b");
       函数提升:函数可以在声明之前调用。使用表达式定义的函数无法提升。
       自调用函数:函数表达式可以“自调用”。eg: (function (){var x = "Hello";})();
       函数可作为一个值使用
       typeof function(){};//function
       隐式参数/显示参数
       arguments:arguments.length;
       通过值传递参数:隐式参数的改变在函数外是不可见的。
       通过对象传递参数:在函数内部修改对象的属性会修改其初始值。
       toString()方法
       函数的调用:有4种调用方式,每种方式的不同之处在于this的变化。
             1.作为一个函数调用:函数不属于任何对象,默认为window对象的函数,this为全局对象window。
             2.函数作为方法调用:把函数定义为对象的方法,函数作为对象方法调用,this的值成为对象本身。
             3.使用构造函数调用函数:使用new关键字,创建新的对象,新对象继承构造函数的属性和方法,
                         this的值在函数调用时实例化对象(new object)时创建。
             4.作为函数方法调用函数:函数是对象,有它的属性和方法,call方法和apply方法,第一个参数成为this
              eg: function myFunction(a,b){return a*b;}
                myObject = myFunction.call(myObject,10,2); //返回20
                myObject = myFunction.apply(myObject,[10,2]); //返回20
    Arguments对象   
       javascript函数的内置对象,包含了函数调用的参数数组。
    作用域/变量的生命周期
       局部作用域,函数执行完毕后销毁
       全局作用域,页面关闭后销毁
     
       全局和局部变量即便名称相同,它们也是两个不同的变量。修改其中一个,不会影响另一个的值。
     
    变量提升
       javascript中,函数及变量的声明都将提升到函数的最顶部。(声明提升,初始化不提升。)
    严格模式 use strict
        "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。它是一个字面量表达式,会在旧版本中忽略。
       严格模式下,不能使用未声明的变量。
       Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。
       严格模式新增了一些保留关键字:
          implements, interface, let, package, private, protected, public, static, yield.
    正则表达式
       文本搜索/文本替换
       String对象的方法:
        search();     用法:str.search(/Runoob/i);
        replace();  用法:str.replace(/a/i,"RR"); 
        split();        用法:
        match();     用法:str.match("word"); 查找字符串中特定的字符,找到的话,返回这个字符;未找到,返回null。
       RegExp对象的方法:
        compile();  用法:        编译正则表达式
        exec();      用法:pattern.exec(str); 检索字符串中的指定值。找到,返回,找到的值;未找到,返回 null。
        test();       用法:pattern.test(str); 搜索字符串指定的值,根据结果并返回真或假。
       修饰符:
        i;不区分大小写 g;全局匹配 m;多行匹配
       量词:
        n?;0个或1个n
        n+;至少一个n
        n*;0个或多个
        n{X} ; X个n
        n{X,Y} ; 至少X个n,至多Y个n
        n{X,} ; 至少X个n
        n$; 以n结尾
        ^n; 以n开头
        ?=n; 任何其后紧接n的字符串
        ?!n; 任何其后不紧接n的字符串
       方括号:
        [abc];查找方括号之间的任何字符
        [^abc];查找任何不在方括号之间的字符
        [a-z0-9];查找给定集合内的任何字符
        [green|red|blue];查找任何指定的选项
       元字符:
        . w W d D s S  B f v uxxx xdd xxx
    阻止默认操作
       preventDefault();
    停止冒泡
       stopPropagation();
     
      (本文属个人总结,后期会持续更新,欢迎大家与我共同探讨...)
      
  • 相关阅读:
    HTML目录
    Java目录
    高级Swing——列表
    Java Web目录
    mongodb目录
    MySQL目录
    基于C++11的线程池
    数据库架构的演变
    cocos2dx-3.0(14)------SpriteBatchNode与SpriteFrameCache加快渲染
    cocos2d-x 托付模式的巧妙运用——附源代码(一)
  • 原文地址:https://www.cnblogs.com/snowcan/p/6422564.html
Copyright © 2011-2022 走看看