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
  • 相关阅读:
    nginx thinkphp rewrite配置项
    mysql主从配置,主从服务器都是全新安装myql的情景
    mysql提示启动成功,但statu是isstopped,重启后正常
    mysql怎么设置密码都不正确的一个解决方法
    linux统计文件个数及代码总行数
    mysqld启动失败时日志查看命令
    .tar.xz 的解压方式 centos
    CentOS 安装Erlang
    vector android:fillType gradient android:endX attribute not found
    found an invalid color
  • 原文地址:https://www.cnblogs.com/otome/p/12588542.html
Copyright © 2011-2022 走看看