zoukankan      html  css  js  c++  java
  • Python JavaScript day1

    JavaScript(一种浏览器的编程语言)
    1.存在形式
      1.跟CSS一样,可以导入文件来使用
      2.也可以写在开头 用<script></script>包括起来
      3.但是最好还是放在body的最后面,否则如果放在前面而JavaScript的操作又非常费时,就会使
        页面一直在加载而看不到body的内容
      4.里面有许多习惯跟单片机差不多,记得写完一个句子加;
    2.变量
      var a = 123; 局部变量
      a = 123; 全局变量
      PS:可以每次写变量的时候都用局部变量,当需要全局变量的时候再改过来,避免出错
    3.数据类型
      1.数字:JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值来表示
        转换:
          parseInt() 将某值转换成数字,不成功则NaN
          parseFloat() 将某值转换成浮点数,不成功则NaN
        特殊值:
          NaN,非数字,可以使用isNaN(num)来判断
          Infinity,无穷大,可以使用isFinite(num)来判断
      2.字符串:
        字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法。

     1             obj.length                           长度
     2             obj.trim()                           移除空白
     3             obj.trimLeft()
     4             obj.trimRight)
     5             obj.charAt(n)                        返回字符串中的第n个字符
     6             obj.concat(value, ...)               拼接
     7             obj.indexOf(substring,start)         返回子序列位置(从前往后)
     8             obj.lastIndexOf(substring,start)     返回子序列位置(从后往前)
     9             obj.substring(from, to)              根据索引获取子序列(感觉和切片差不多)
    10             obj.slice(start, end)                切片
    11             obj.toLowerCase()                    大写
    12             obj.toUpperCase()                    小写
    13             obj.split(delimiter, limit)          分割
    14             obj.search(regexp)                   从头开始匹配,返回匹配成功的第一个位置(g无效)
    15             obj.match(regexp)                    全局搜索,如果正则中有g表示找到全部,否则只找到第一个。
    16             obj.replace(regexp, replacement)     替换,正则中有g则替换所有,否则只替换第一个匹配项,
    17                                                  $数字:匹配的第n个组内容;
    18                                                  $&:当前匹配的内容;
    19                                                  $`:位于匹配子串左侧的文本;
    20                                                  $':位于匹配子串右侧的文本
    21                                                  $$:直接量$符号
    常见功能

      3.布尔类型:
        首字母是小写:a = true

        == 等于
        != 不等于
        === 比的时候类型相等
        !== 比的时候类型不相等
        || 或
        && 且

    比如: a = '123' b = 123;
    a == b 是true , 只比较值的大小,不考虑类型
    a === b 就是false, 值和类型都要相同

      4.数组:
        类似于Python的列表,可以使用 a=[];  来创建数组

     1 obj.length 数组的大小
     2 obj.push(ele) 尾部追加元素
     3 obj.pop() 尾部获取一个元素
     4 obj.unshift(ele) 头部插入元素
     5 obj.shift() 头部移除元素
     6 obj.splice(start, deleteCount, value, ...) 插入、删除或替换数组的元素
     7 obj.splice(n,0,val) 指定位置插入元素,n代表位置,val代表插入的元素,0固定
     8 obj.splice(n,1,val) 指定位置替换元素
     9 obj.splice(n,1) 指定位置删除元素
    10 obj.slice( ) 切片
    11 obj.reverse( ) 反转
    12 obj.join(sep) 将数组元素连接起来以构建一个字符串
    13 obj.concat(val,..) 连接数组
    14 obj.sort( ) 对数组元素进行排序
    常见功能:

    4.其他:
      转义:

                encodeURL(url);  把URL后面的的中文,括号等转换成浏览器可以识别的东西
                decodeURL(url);
                encodeURIComponent(); 把URL里的所有东西转换,包括//:之类的
                decodeURLComponent();
                escape(); 对字符串进行转义
                unescape(); 解码

      eval:
    5.时间处理
      a = new Date;直接创建一个本时区的对线,可以用get来获得想要的值,用set来设置值
    6.正则表达式:
    7.语句:
      1.if

        if(条件){}
        else if(条件){}
        else{}

      2.switch

        switch(name){
        case '1': age = 123; break ;
        case '1': age = 456; break ;
        default : age = 789;
        }

      3.循环:
        1.while(条件){}
        2.for(var i=0;i<10;i++){} 根据条件循环(不能处理字典)
        3.for(var i in li){} 把li里东西的索引取出(可以处理字典,因为取出来的是KEY)
      4.异常处理:

        try{}
        catch(var){} 如果try抛出异常就执行这个语句,可以输入var变量
        finally{} 无论如何都会执行
    
        throw new Error('xxx') 主动创建一个错误

    8.函数:
      普通函数:
        function f1(){}
      匿名函数:
        setInterval(function(){alert(1)},1000);
      自执行函数:
        (function (arg) {alert(arg)})(123) 自己会执行函数的函数
    9.作用域:
      1.没有块级作用域,但是有let
        比如:

    1 while(1){
    2 let let1 = 2;
    3 var var1 = 2;
    4 }
    5 alert(let1); //不可访问
    6 alert(var1); //可以访问

      2.采用函数作用域:函数外面的无法访问函数里面的变量

    function main(){var a = 'a'}
    main();
    console.log(a)//报错

      3.作用域链

    xo = 'one';
    function f1() {
    var xo = 'two';
    function f2() {
    var xo = 'three'
    console.log(xo);
    }
    f2();
    }
    f1();
    
    输出 three

      执行console.log(xo);时会一层一层地往外找xo,如果有就输出,没有就继续往外找
    4.作用域链在执行前就已经创建了

      例1

    xo = 'one';
    function f1() {
    var xo = 'two';
    function f2() {
    console.log(xo);
    }
    return f2;
    }
    //var ret = f1();
    //ret();
    虽然没有调用f1,但是已经创建了作用域,且作用域f1中创建了var xo;但是值为undefined,
    当执行时,f1 创建了var xo = 'two', var ret=f1{},而f1返回的是f2,f2的ox就要从里面往往外需找,在上一层找到var xo='two',所以ret的值是two。

      例2

    xo = 'one';
    function f1() {
    var xo = 'two';
    function f2() {
    console.log(xo);
    }
    xo = 'three' ; //这里是对var xo 的重新赋值,不是创建全局变量xo,以为上面已经创建了var xo了
    return f2;
    }
    var ret = f1();
    ret();
    作用域一层一层,所以ret的值是three

      例3

    <script>
    xo = 'one';
    function f1() {
    console.log(xo);
    }
    function f2() {
    var xo = 'two';
    return f1;
    }
    var ret = f2();
    ret();
    </script>
    
    这样相当于ret 是f1,从f1的作用域开始往外找,所以ret就是 one
  • 相关阅读:
    扫面线模板
    (动态规划、栈)leetcode 84. Largest Rectangle in Histogram, 85. Maximal Rectangle
    tmux 常见命令汇总
    leetcode 221
    leetcode 319 29
    (贪心)leetcode 392. Is Subsequence, 771. Jewels and Stones, 463. Island Perimeter
    leetcode 982 668
    Python import 同文件夹下的py文件的函数,pycharm报错
    Windows里Anaconda-Navigator无法打开的解决方案
    Windows下 gpu版 Tensorflow 安装
  • 原文地址:https://www.cnblogs.com/otome/p/12588542.html
Copyright © 2011-2022 走看看