zoukankan      html  css  js  c++  java
  • JavaScript扫盲笔记:

    JavaScript学习:
    
    JavaScript代码存在形式:
        -Head中
            <script>
            
            </script>
        -文件
            <script src='代码所在路径'></script>
        -PS:放在<body>标签内部最下方
        
    注释:
        单行// 
        多行/* .....*/
        
        变量:
            
            python:
                name = 'alex'
            JavaScript:
                name = 'alex'     # 全局变量
                var name = 'eric' # 局部变量
            
        写Js代码:
            - html文件中编写
            - 临时,浏览器的终端 console
            
              
        基本数据类型
            数字
                a = 18;
                将字符串转换为数字
                age = ‘18’
                age =parseInt(age);
            字符串
                a = "alex"
                a.chartAt(索引位置)
                a.substring(起始位置,结束位置)
                a.lenght    获取当前字符串长度
                obj.length                           长度
                obj.trim()                           移除空白
                obj.trimLeft()
                obj.trimRight)
                obj.charAt(n)                        返回字符串中的第n个字符
                obj.concat(value, ...)               拼接
                obj.indexOf(substring,start)         子序列位置
                obj.lastIndexOf(substring,start)     子序列位置
                obj.substring(from, to)              根据索引获取子序列
                obj.slice(start, end)                切片
                obj.toLowerCase()                    大写
                obj.toUpperCase()                    小写
                obj.split(delimiter, limit)          分割
                obj.search(regexp)                   从头开始匹配,返回匹配成功的第一个位置(g无效)
                obj.match(regexp)                    全局搜索,如果正则中有g表示找到全部,否则只找到第一个。
                ====match示例:返回数组,()为分组================================
                    var str = 'For more information, see Chapter 3.4.5.1';
                    var re = /see (chapter d+(.d)*)/i;
                    var found = str.match(re);
                    console.log(found);
                    // 输出 [ 'see Chapter 3.4.5.1', 'Chapter 3.4.5.1', '.1',
                    //        index: 22,
                    //        input: 'For more information, see Chapter 3.4.5.1' ]
                obj.replace(regexp, replacement)     替换,正则中有g则替换所有,否则只替换第一个匹配项,
                                                     $数字:匹配的第n个组内容;
                                                     $&:当前匹配的内容;
                                                     $`:位于匹配子串左侧的文本;
                                                     $':位于匹配子串右侧的文本
                                                     $$:直接量$符号
                ================================================================================
            定时器
                循环:setInterval('f1();',2000) #(执行函数,毫秒数)
            函数名
                function f1(){
                }
                ...
            列表(数组)
                a = [11,22,33]
                
                obj.length          数组的大小
                obj.push(ele)       尾部追加元素
                obj.pop()           尾部获取一个元素
                obj.unshift(ele)    头部插入元素
                obj.shift()         头部移除元素
                obj.splice(start, deleteCount, value, ...)  插入、删除或替换数组的元素
                                    obj.splice(n,0,val) 指定位置插入元素
                                    obj.splice(n,1,val) 指定位置替换元素
                                    obj.splice(n,1)     指定位置删除元素
                obj.slice( )        切片
                obj.reverse( )      反转
                obj.join(sep)       将数组元素连接起来以构建一个字符串
                obj.concat(val,..)  连接数组
                obj.sort( )         对数组元素进行排序
                
            字典
                a = {'k1':'v1','k2':'v2'}
            布尔类型:
                小写
            条件判断:
                ==      比较值相等
                !=       不等于
                ===   比较值和类型相等
                !===  不等于
                ||        或/or
                &&      且/and
      
        for循环
            1. 循环时,循环的元素是索引(数组为下标,字典为key)
            
                a = [11,22,33,44]
                for(var item in a){
                    console.log(item);
                }
                
                a = {'k1':'v1','k2':'v2'}
                for(var item in a){
                    console.log(item);
                }
                
            2. 
                for(var i=0;i<10;i=i+1){
                    
                }
                
                a = [11,22,33,44]
                for(var i=0;i<a.length;i=i+1){
                    
                }
                
                不支持字典的循环
        switch (name) {
            case  '1':
                console.log('name 等于1');
            default:
                console.log('default');
        }
          
        条件语句
            if(条件){
            
            }else if(条件){
                
            }else if(条件){
                
            }else{
                
            }
            
            ==   值相等
            ===  值和类型都相等
            &&   and
            ||   or
            
        
        函数:
        
        普通函数:    
            function 函数名(a,b,c){
            
            }
            
            函数名(1,2,3)
            function (形式参数) {
                return XXX
            }
        匿名函数:
            setInterval (function(){
                console.log('1')
            },5000)
        自执行函数:(创建函数,并且自动执行)
            function func() {
            
            }
            func()
            即:(function (arg){
                console.log(arg)
            })(arg=10)
            测试用例:(function(arg){a = 0;while (a < arg){ console.log(a);a++}})(10)
        序列化:
            li = [1,22,33,33,22,33,534,345,1]
            列表转换为字符串:JSON.stringify(li)
            str1 = '[1,22,33,33,22,33,534,345,1]'
            字符串转换为列表/字典:JSON.parse(str1)
        转义:转义
            decodeURI( )                   URl中未转义的字符
            decodeURIComponent( )   URI组件中的未转义字符
            encodeURI( )                   URI中的转义字符
            encodeURIComponent( )   转义URI组件中的字符
            escape( )                         对字符串转义
            unescape( )                     给转义字符串解码
            URIError                        由URl的编码和解码方法抛出 
                    url = 'https://www.baidu.com/queuery=哈哈'
                    "https://www.baidu.com/queuery=哈哈"
                    encodeURIComponent(url)
                    "https%3A%2F%2Fwww.baidu.com%2Fqueuery%3D%E5%93%88%E5%93%88"
                    encodeURI(url)
                    "https://www.baidu.com/queuery=%E5%93%88%E5%93%88"
        eval
            python里:
                val = eval(表达式,有返回值)
                exec(执行代码,无返回值)
            JavaScript里面:
                功能等于python的集合。放表达式或者代码都行
        时间:
        
            获取当前时间
            var now = new Date()
            
            now
            Fri Nov 02 2018 23:09:51 GMT+0800 (中国标准时间)
            now.getMinutes()/*获取分钟*/ 
            9
            now.setMinutes(33) /*修改当前时间*/
            1541172831562
            now
            Fri Nov 02 2018 23:33:51 GMT+0800 (中国标准时间)
        
    作用域:
        其他语言:
            以代码块作为作用域
            例java:
            public void Func() {
                if (1==1) {
                    string name = 'java';
                }
                console.writeline(name);
            }
            --此段程序会报错:console.writeline找不到name
        python: 
            以函数作为作用域
        JavaScript:
            一、以函数作为作用域,存在作用域链(一个变量从最里面的函数依次递归向上一级寻找,找到即取值)
            二、函数的作用域在未被调用之前就已经创建,
            例:
            xo = 'alex'
            function func () {
                var xo = 'zhangmingda'
                function inner(){
                    console.log(xo)
                }
                return inner;
            }
            var ret = func()
            ret()
            -执行结果:打印xo输出内部函数的变量值‘zhangmingda’
            三、函数内局部变量,声明提前。
            例:
                function func() {
                    console.log(xxoo);
                    var xxoo = 'alex';
                    console.log(xxoo)
                }
                解释:若var xxoo = 'alex'; 不写,则程序报错。若写了,第一行不报错,因为在函数中,遇到变量内部自己会首先做一个声明var 变量名 值默认为undefined

    JavaScript学习:
    JavaScript代码存在形式:-Head中<script></script>-文件<script src='代码所在路径'></script>-PS:放在<body>标签内部最下方注释:单行// 多行/* .....*/    变量:                python:            name = 'alex'        JavaScript:            name = 'alex'     # 全局变量            var name = 'eric' # 局部变量            写Js代码:        - html文件中编写        - 临时,浏览器的终端 console                      基本数据类型        数字            a = 18;将字符串转换为数字age = ‘18’age =parseInt(age);        字符串            a = "alex"            a.chartAt(索引位置)            a.substring(起始位置,结束位置)            a.lenght    获取当前字符串长度obj.length                           长度obj.trim()                           移除空白obj.trimLeft()obj.trimRight)obj.charAt(n)                        返回字符串中的第n个字符obj.concat(value, ...)               拼接obj.indexOf(substring,start)         子序列位置obj.lastIndexOf(substring,start)     子序列位置obj.substring(from, to)              根据索引获取子序列obj.slice(start, end)                切片obj.toLowerCase()                    大写obj.toUpperCase()                    小写obj.split(delimiter, limit)          分割obj.search(regexp)                   从头开始匹配,返回匹配成功的第一个位置(g无效)obj.match(regexp)                    全局搜索,如果正则中有g表示找到全部,否则只找到第一个。====match示例:返回数组,()为分组================================var str = 'For more information, see Chapter 3.4.5.1';var re = /see (chapter d+(.d)*)/i;var found = str.match(re);console.log(found);// 输出 [ 'see Chapter 3.4.5.1', 'Chapter 3.4.5.1', '.1',//        index: 22,//        input: 'For more information, see Chapter 3.4.5.1' ]obj.replace(regexp, replacement)     替换,正则中有g则替换所有,否则只替换第一个匹配项, $数字:匹配的第n个组内容; $&:当前匹配的内容; $`:位于匹配子串左侧的文本; $':位于匹配子串右侧的文本 $$:直接量$符号================================================================================定时器循环:setInterval('f1();',2000) #(执行函数,毫秒数)函数名function f1(){}            ...        列表(数组)            a = [11,22,33]obj.length          数组的大小obj.push(ele)       尾部追加元素obj.pop()           尾部获取一个元素obj.unshift(ele)    头部插入元素obj.shift()         头部移除元素obj.splice(start, deleteCount, value, ...)  插入、删除或替换数组的元素obj.splice(n,0,val) 指定位置插入元素obj.splice(n,1,val) 指定位置替换元素obj.splice(n,1)     指定位置删除元素obj.slice( )        切片obj.reverse( )      反转obj.join(sep)       将数组元素连接起来以构建一个字符串obj.concat(val,..)  连接数组obj.sort( )         对数组元素进行排序                    字典            a = {'k1':'v1','k2':'v2'}        布尔类型:            小写条件判断:==      比较值相等!=       不等于===   比较值和类型相等!===  不等于||        或/or&&      且/and      for循环        1. 循环时,循环的元素是索引(数组为下标,字典为key)                    a = [11,22,33,44]            for(var item in a){                console.log(item);            }                        a = {'k1':'v1','k2':'v2'}            for(var item in a){                console.log(item);            }                    2.             for(var i=0;i<10;i=i+1){                            }                        a = [11,22,33,44]            for(var i=0;i<a.length;i=i+1){                            }                        不支持字典的循环    switch (name) {case  '1':console.log('name 等于1');default:console.log('default');}          条件语句        if(条件){                }else if(条件){                    }else if(条件){                    }else{                    }                ==   值相等        ===  值和类型都相等        &&   and        ||   or                函数:        普通函数:            function 函数名(a,b,c){                }                函数名(1,2,3)function (形式参数) {return XXX}    匿名函数:setInterval (function(){console.log('1')},5000)    自执行函数:(创建函数,并且自动执行)function func() {}func()即:(function (arg){console.log(arg)})(arg=10)测试用例:(function(arg){a = 0;while (a < arg){ console.log(a);a++}})(10)序列化:li = [1,22,33,33,22,33,534,345,1]列表转换为字符串:JSON.stringify(li)str1 = '[1,22,33,33,22,33,534,345,1]'字符串转换为列表/字典:JSON.parse(str1)转义:转义decodeURI( )                   URl中未转义的字符decodeURIComponent( )   URI组件中的未转义字符encodeURI( )                   URI中的转义字符encodeURIComponent( )   转义URI组件中的字符escape( )                         对字符串转义unescape( )                     给转义字符串解码URIError                        由URl的编码和解码方法抛出 url = 'https://www.baidu.com/queuery=哈哈'"https://www.baidu.com/queuery=哈哈"encodeURIComponent(url)"https%3A%2F%2Fwww.baidu.com%2Fqueuery%3D%E5%93%88%E5%93%88"encodeURI(url)"https://www.baidu.com/queuery=%E5%93%88%E5%93%88"evalpython里:val = eval(表达式,有返回值)exec(执行代码,无返回值)JavaScript里面:功能等于python的集合。放表达式或者代码都行时间:获取当前时间var now = new Date()nowFri Nov 02 2018 23:09:51 GMT+0800 (中国标准时间)now.getMinutes()/*获取分钟*/ 9now.setMinutes(33) /*修改当前时间*/1541172831562nowFri Nov 02 2018 23:33:51 GMT+0800 (中国标准时间)作用域:其他语言:以代码块作为作用域例java:public void Func() {if (1==1) {string name = 'java';}console.writeline(name);}--此段程序会报错:console.writeline找不到namepython: 以函数作为作用域JavaScript:一、以函数作为作用域,存在作用域链(一个变量从最里面的函数依次递归向上一级寻找,找到即取值)二、函数的作用域在未被调用之前就已经创建,例:xo = 'alex'function func () {var xo = 'zhangmingda'function inner(){console.log(xo)}return inner;}var ret = func()ret()-执行结果:打印xo输出内部函数的变量值‘zhangmingda’三、函数内局部变量,声明提前。例:function func() {console.log(xxoo);var xxoo = 'alex';console.log(xxoo)}解释:若var xxoo = 'alex'; 不写,则程序报错。若写了,第一行不报错,因为在函数中,遇到变量内部自己会首先做一个声明var 变量名 值默认为undefined

  • 相关阅读:
    Widget Factory
    233 Matrix
    青蛙的约会
    Longge's problem
    密码解锁
    SQFREE
    GCD
    [WC2011]最大XOR和路径
    [HNOI2011]XOR和路径
    [ZJOI2010]排列计数
  • 原文地址:https://www.cnblogs.com/zhangmingda/p/13036235.html
Copyright © 2011-2022 走看看