zoukankan      html  css  js  c++  java
  • 【JavaScript】js01

    一,javascript 历史。
      netscape -> 浏览器。 -> livescript
      微软 -> jscript

      netscape -> ecma 组织 -> ecma - 262标准。

      java 语言 -> ecmascript -> javascript。

      javascript 和 java 没有半毛钱关系。

    二,js 都干什么。
      1. 表单验证。
      2. 加特效。
      3. 书写 ajax,无刷新地请求数据库。

    三,怎么去学习。
      1. ecmascript,基本语法。
      2. BOM,浏览器对象模型(兼容性问题)。
      3. DOM,文档对象模型。

    四,js 特点。
      1. 浏览器脚本语言。
      2. 跨平台。
      3. 安全。
      4. 兼容性不好。

    五,基本语法。
      1,js 书写场景。
        (1) 写在 事件属性里。

    <div onclick="alert('123');" style="100px; height: 100px;background: #f00"></div>
    View Code

        (2) 写在 script 标签里。

    <script type="text/javascript">
            
            alert('你好');
    
    </script>
    View Code

        (3) 写在 外部文件里。

          注:当使用script标签的src属性时,script标签中一定不能放入任何JS代码。

    <script type="text/javascript" src="./1.js"></script>
    View Code

        (4) 写在 a 链接 href 属性里。

    <a href="javascript:alert('百度');">百度</a>
    View Code

      2. js 变量。
        字母数字下划线($),不能以数字开头,严格区分大小写,不能使用关键字。

      3. js 注释
        (1) //
        (2) /* */

      4. 分隔符。
        (1) ; 可有可无,但推荐加上,可以压缩。

        (2) 不加;可用换行代替

      5. js 数据类型。
        6种。
        (1)boolean

        (2)string

          ① 单引号和双引号均可解析转义字符
          ② 单引号和双引号均不能解析变量
          ③ 变量与字符串、变量与变量要使用+来连接。
          ④ 单引号和双引号可以互相嵌套,如果单引号中要嵌套单引号,需要将单引号转义,同理,双引号相同

        (3)object

        (4)function

        (5)undefined

        (6)number

          注意:永远不要测试某个特定的浮点数的值!   

          NaN的特点:
            1.任何涉及NaN的操作,结果都为NaN
            2.NaN与任何值都不相等,包括NaN本身


        使用 typeof 检测出来的只有这6种。

        万物皆空。null 类型。

      6. js 数据类型转换。
        (1) 强制类型转换
          ① parseInt()

            A.忽略字符串前空格,直接找到第一个非空格字符

            B.第一个字符不是数字或负号,返回NaN。

            C.空字符串,返回NaN。

            D.第一个字符是数字,会继续解析,知道解析完或遇到第一个非数字字符

          ② parseFloat()

            1.第一个小数点是有效的,第二个小数点无效
            2.始终忽略前面的0,不分进制数
            3.十六进制会被转换成0
            4.空字符串转换为NaN

          ③ Number()  

            A.如果是布尔值,true和false将分别转换为1和0
            B.如果是数字值,只是简单的传入和返回
            C.如果是null,返回0
            D.如果undefined,返回NaN
            E.如果是字符串,遵循下列规则:
              a. “11”会变成11,“011”会变成11
              b.“1.1”会变成1.1
              c.“0xf”会变成相同大小的十进制整数值
              d. 如果字符串是空的,则将其转换为0
              e. 如果字符串包含除上述格式之外的字符,则将其转换成NaN

          ④ String()

          ⑤ Boolean()

        (2) 自动类型转换
          计算
          if() //0,0.0,false,'',null,undefined

      7. 运算符。
        算术
        字符串
        赋
        比较
        逻辑
        位
        其他
      8. 流程控制,循环,控制。
        if
        switch
        while
        do... while
        for

        九九乘法表。

      10. 函数
        (1)函数声明:
          ① 函数语句:function 函数名(){}
          ② 函数表达式:var func = function(){}
          ③ 构造函数:var func = new Function("函数体");
        (2)函数参数:
          function func(a, b, c)// 不要给默认值。    

          ① JavaScript中的函数不允许给参数赋初始值
          ② 传递的参数个数与函数定义的参数个数不匹配时:
            a.如果传递的参数个数小于函数定义的参数个数,JavaScript会自动将多余的参数值设为undefined;
            b.如果传递的参数个数大于函数定义的参数个数,那么多余传递的参数将会被忽略掉。

          ③判断传递的函数参数的个数
            可以使用arguments.length
          ④获得实际传递参数的值
            for(var i=0;i<arguments.length;i++){
              alert(arguments[i]);
            }

        (3)函数返回值:
          如果没有 return 默认返回 undefined
        (4)作用域:       

          ① 变量的优先级
            如果在函数体里定义了一个与全局变量名相同的局部变量,那么在该函数体里全局变量将不起作用,就相当于全局变量并不存在。
          ② 在函数体内定义全局变量
            在函数体内使用var关键字定义的变量为局部变量,如果要在函数体内定义全局变量,则不能使用var关键字,只需要直接给变量赋值即可。
          ③ 嵌套函数体中的变量的范围
            在JavaScript中的函数是可以嵌套的,每个嵌套函数中的变量都可以在该函数体内,以及嵌套的函数体内起作用,但不能在父级或父级以上的函数体内起作用。
          ④ 局部变量在整个函数体内都有效
            JavaScript只要在函数体内定义了局部变量,该局部变量就会在整个函数体内有效,而不是从定义局部变量的那行代码开始起效。


          常用的函数。
            eval

              eval()函数是使用得比较多的一个函数,该函数的作用是将字符串指定为对象。
            escape

              escape()函数的作用是将字符串中的非文字、数字的字符,如#,$,%,^,&,空格,括号等,转换成相应的ASCII值。主要用在字符串的处理上,用于保证这些特殊字符不会干扰到字符串的处理。
            unescape

              unescape()函数的作用是将ASCII码的文字转换成一般文字。

      11. 对象
        对象声明:
          new Object();
          {}
          构造方法。new Girl(name,age);
        对象的属性操作
          .
            o.name = 'zs';
            delete o.name;
            o.name = 'ls';
            o.name;

          []
            o['name'] = 'zs';
            delete o['name'];
            o['name'] = 'ls';
            o['name'];

          var str = 'height';
          o[str] = '180cm';
        对象的方法操作。
          o.sing();
          o['sing']();

          json,一种通用的数据容器(格式)。

    <script type="text/javascript">
    
        // json是一个通用数据容器。
        
        var obj = {
            'name':'张三',
            'age':18,
            'sing':function()
            {
                alert('sing');
            },
            dance:function()
            {
                alert('dance');
            }
        };
    
    </script>
    View Code

          for in

    var obj = {
        'name':'zs',
        'age':'ls',
        'height':'180cm'
    };
    
    for( i in obj)
    {
        console.log(i);
        console.log(obj[i]);
    }
    View Code

      12. with
        简化操作。但是效率低下。

    五,内置对象
      布尔对象,字符串对象,数组对象,日期对象,数学对象,正则对象...

      布尔对象,

        字符串对象,
        属性:
          length
        方法:
          查手册。
          trim();这是浏览器帮你添加的一个方法,不是标准的。

          永远是返回一个新的字符串。

      数组对象
        属性:
          length
        方法:
          查手册。

      日期对象。
        // 获取年月日时分秒。

     1 //一个获取当前时间日期的实例
     2 // 1. 获取元素。
     3 var did = document.getElementById('did');
     4 
     5 // 入口。
     6 run();
     7 
     8 // 4. 设置定时器。
     9 setInterval(function(){
    10 
    11     run();
    12 
    13 }, 1000);
    14     
    15 
    16 // 封装函数。
    17 function run()
    18 {
    19     var d = new Date();
    20 
    21     // 2017-5-12 10:14:27
    22 
    23     // 获取年,月,日,时,分,秒。
    24     var y = d.getYear();
    25     var y = d.getFullYear();
    26     var m = d.getMonth() + 1;
    27     var dd = d.getDate();
    28     var h = d.getHours();
    29     var mm = d.getMinutes();
    30     var s = d.getSeconds();
    31 
    32     // console.log(d);
    33     // console.log(y);
    34     // console.log(m);
    35     // console.log(dd);
    36     // console.log(h);
    37     // console.log(mm);
    38     // console.log(s);
    39     
    40     if(s < 10) 
    41     {
    42         s = '0' + s;
    43     }
    44 
    45     if(mm < 10)
    46     {
    47         mm = '0' + mm;
    48     }
    49 
    50     if(h < 10)
    51     {
    52         h = '0' + h;
    53     }
    54     
    55     var str = y + '-' + m + '-' + dd + ' ' + h + ':' + mm + ':' + s;
    56     // document.write(str);
    57 
    58 
    59     // 2. 添加样式。
    60     did.style.width = '200px';
    61     did.style.height = '200px';
    62     did.style.backgroundColor = 'yellow';
    63 
    64     // 3. 写入时间字符串。
    65     did.innerHTML = str;   
    66 }
    View Code

      数学对象
        是一个静态对象。
        Math.PI
        查手册。
      随机数
        获取 m -n 之间的随机数。
        Math.ceil(Math.random()* (n - m + 1)) + m -1 ;

  • 相关阅读:
    MySQL5.7(64位)windows下的安装
    Python---更改pip源
    .NET WEB技术小记
    前端板书1
    Hadoop伪分布式系统的搭建(ubuntu)
    Hive的基本操作
    SQLServer2008附加数据库不成功 操作系统错误5
    VUE学习小结
    jQuery入门基础(选择器)
    Linq(高级查询)
  • 原文地址:https://www.cnblogs.com/peilanluo/p/6853279.html
Copyright © 2011-2022 走看看