zoukankan      html  css  js  c++  java
  • js 入门知识点 自我总结复习

    1.javascript基础 : 
    客户端   安全性   跨平台   脚本语言
    三大结构:  顺序 、选择、循环       
                顺序:运算符和表达式   
                         逻辑运算符: 与&&  或||  非! 如:5||6     5&&6   
                         算术运算符: + - * / %   ++   --                    
                          关系运算符:  > <  ==   === 
                         条件运算符(三目)    ? :
                          赋值     =   +=   -=   *=   /=   %=
    数据类型:      基本: string   number  boolen   
                            复合数据类型 : object  
                            特殊        null      undefined   
                            es6新增的数据类型 : symbol
     
    (扩展) 
    typeof 测试变量的数据类型 
    typeof typeof 数据  ---> string
    运算符的优先级
    () > 单目 > 算术  >  关系  > 逻辑 > 条件  >  赋值   
              */%  +-           &&  ||  
     
    类型转换
         在算术运算和关系运算中, 纯数字字符串会自动转换成数值进行计算    null 会自动转换成0     undefined 会自动转换成 NaN
        如: 1 + null  = 1
             1 + undefined  = NaN
             "a" > undefined   false
    强制类型转换:  强制将某个类型转成另一个类型,如果不能正常转换,结果就是NaN
         parseInt()  将字符串转成整数
              parseInt("12")  --   12
              parseInt("12ab") --  12
              parseInt("ab12ddd") -- NaN
              parseInt("ab12") ---   NaN
              parseInt("12a34"); --12
         parseFloat()  将字符串转成小数
              parseFloat("12.34ab34"); --   12.34
              parseFloat("12ab12.34"); --   12
              
         Number()  尝试将某个类型转成 数值型  如果不能转换,值为NaN
              Number( true )   1
              Number( false )  0
              Number("12")      12
              Number( "12ab" );  NaN
              Number( "12ab34" )  NaN
          toString()  尝试将某个类型转成字符串   
     
    eval() 将一个字符串转成表达式  并返回表达式的值 (将引号去掉)
            alert( "2+3" );
            alert( eval("2+3") );
            eval("alert(2)");
    2.js中标识符(变量)的命名规范   
    a、js中的标识符只能由 字母、数字、下划线、$  组成(不建议用中文)
    b、标识符 不能用  数字 开头
    c、不能使用系统指定的关键字命名
     
    3.if和switch  选择结构 控制语句
    if常用于对一定范围进行判断       
        if判断条件:
            1:所有非0的数字都表示true     否则为false
            2:所有非空字符串都表示true    否则为false
            3:条件直接写true  程序执行     false则不执行。
            4:if(NaN)  返回 false
            5:if(undefined)  返回false
            6:if(null)    返回false;
            7:所有对象返回 true;
            8:所有存在的函数 返回的true;
    switch常用于对固定的值进行判断。
        switch ( 表达式 ){
               case 常量  : 语句;
               case  常量  :  语句 ;
               case  常量  :  语句 ;
               case  常量  :  语句 ;
                .......
                default  :   语句 ;
             }
    执行逻辑:
                如果 case 后面的常量1 和 表达式1的结果匹配,开始执行 语句1;、
                如果 case 后面的常量2 和 表达式1的结果匹配,开始执行 语句2;
                ......
                如果所有的case 后面的值都不匹配 则执行的 是 default  后面的语句5
            特点:case 有穿透性
            怎样阻止case的穿透性:break语句。
    附:下拉菜单写法:  <select>
                                                            <option></option>
                                                              <option></option>
                                                </select>
    4.循环结构
                for    while    do...while    for...of    for...in    forEach()     break和continue
    1.循环的五大要素:
            a:循环的变量
            b:变量的初始值
            c:循环体
            d:变量的增值
            e:循环的终止条件
    循环的作用:
                1:重复执行一段代码,简化代码
                2:遍历数组、遍历对象、遍历节点集合......
        
    2.for循环的语法:
            for(语句1;语句2;语句3){
                循环体
            }
    for语法解析:
            语句1:声明循环变量、并且初始化    eg:   var  i = 1;
            语句2:循环的条件。         eg:i <=  100;
            语句3:循环变量的增值     eg:i++
         for 执行逻辑:
            先执行语句1(声明循环变量,并且对变量初始化),然后执行语句2(判断是否符合循环条件,如果条件成立则进入循环体。)循环体执行完之后,开始执行语句3(变量的增值,增值之后,再次执行语句2,开始对循环条件进行判断。)
     
     3.while循环
            语法:
               while(循环条件){
                  循环的代码。
            }
    while与do  while的区别:
            while:先对循环条件进行判断,如果条件成立则进入循环,如果不成立直接跳出(一次都不执行)
            do  while:  先对循环体执行一次,执行完一次之后,再对循环条件进行判断,如果条件成立则进入循环,否则跳出
    while的执行逻辑:
                1:对条件表达式进行判断
                2:如果条件不成立,一次也不执行,直接跳出循环
                3:如果条件成立。进入循环,开始循环“循环体”,循环一次之后,再次对条件进行判断,如果成立则继续执行“循环体”。如果不成立则跳出循环
    while的跳出:
                1:对循环条件的判断
                2:break跳出(终止循环)
    5.函数   
    关键字function创建   
                 function myFn(){}
       字面量形式        
                 var myFn = function(){}
    构造函数形式
                    var myFn = new Function();
    函数的应用(调用函数):
                自调用          语法:   函数名();    函数名称后面有() 函数则执行。
                事件调用        事件源(绑定事件的元素).onclick = function(){}
      函数的特点:
                    1:隐藏函数内部结构。
                    2:函数不会自动执行,再调用的时候才会执行(选择性应用)
                    3:重复应用,
     
    函数的递归调用 : 自己调用自己
        function fn(m){
            if(m==1){
                return;
            }else{
                console.log( "hello" );
                        fn(m-1);
            }
        }
        fn(3);
       匿名函数自执行:
            (function(){ })()
     
    6.arguments对象      
      arguments.length    实参的个数             arguments[0];
        通过arguments对象的length属性,可以判断实参的个数
    打印所有传递的实参/
         function fn(){
             for(var i = 0 ; i <  arguments.length ; i++){
                 console.log(arguments[i]);
             }
         }
         fn(3,4,5,6,7,8,9)
    7.返回值   return:    
    return  1:函数得返回值
            2:调用函数得时候,希望从函数里面获得的数据
            3:如果没有return  函数返回的undefined
            4:在函数里面遇到return 直接返回。后面的代码不再执行。(break;)
            5:return 只能出现在函数里面。
            6:return只能返回一个结果。
     
    8.变量提升
    js的执行:
                预编译(预解析)
                    第一步:js 先去检测语法错误。(先去检测语法,如果语法错误,直接报错,不执行)
                    第二部:变量提升。(把所有var声明的变量,提前到当前作用的最前面,所有的赋值语句原地等待)执行
    变量提升:
                先把所有var声明的变量,提前到当前作用的最前面
                再次提升的是用关键字function定义函数
                (函数的权重大于变量)
    9.内置对象
    a.数组Array   操作方法:
     forEach()   filter()   map()   reduce()  indexOf() splice()--删除  替换 添加  slice()  join()  reverse()  concat()
                pop()  push()  shift() unshift()  some()  every()
    b.字符串对象 String
        字符串的操作方法:
                    indexOf()  charAt()  charCode()   String.fromCharCode()   slice()   substr()  substring()   split()   replace()
                    toLowerCase()  trim()
    10.正则
    正则表达式对象  RegExp()
        正则的特殊字符 :
                写一个身份证正则 : /^d{17}(d|x)$/
                正则的操作方法 : test()   exec()
                参数是正则的方法 :replace  match  search()
                实现 :
                       使用正则去掉字符串中所有空白字符: "   heheh   hehaha   haha  ".replace( /s/g , "" )
                                                var arr = ["tmd","mmp","sb"];
                                                var str = "hello sb sb tmd mmp wold  tmd tmd";
                                            for( var i = 0 ; i < arr.length ; i++ ){
                                                    var reg = eval("/"+arr[i]+"/g");
                                            var reg =new RegExp( arr[i] ,"g" )   
                                               str =  str.replace(reg,"*")
                                                    }
                                            console.log( str )
     
  • 相关阅读:
    leetcode--Pascal's Triangle
    leetcode--Sort Colors
    leetcode--Gray Code
    leetcode--Minimum Path Sum
    leetcode--Convert Sorted List to Binary Search Tree
    leetcode--Generate Parentheses
    leetcode--Convert Sorted Array to Binary Search Tree
    leetcode--Merge Two Sorted Lists
    leetcode--Remove Element
    资源分享 | JavaScript Web应用开发【Nicolas Bevacqua】.pdf
  • 原文地址:https://www.cnblogs.com/wangwenxin123/p/11166855.html
Copyright © 2011-2022 走看看