zoukankan      html  css  js  c++  java
  • day 42 JavaScript 基础知识部分

    一. JavaScript存放位置

    <script type="text/javascript" src="JavaScript文件路径"></script>
    <!-- JavaScript代码推荐位置 -->
    
        
        <link rel="stylesheet" href="CSS文件路径">
        <!-- CSS代码推荐位置 -->

    二. 常见数据类型

      1.数字:JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。

    // 声明
    var page = 111;
    var age = Number(18);
    var a1 = 1,a2 = 2, a3 = 3;
    // 转换
    parseInt("1.2");  // 将某值转换成数字,不成功则NaN
    parseFloat("1.2");  // 将某值转换成浮点数,不成功则NaN
    /*
    NaN,非数字。可使用 isNaN(num) 来判断。
    Infinity,无穷大。可使用 isFinite(num) 来判断。
    */

     扩展:可以用 typeof(“xx”) 查看数据类型。

      2. 字符串(String)

    // 声明
    var name = "wupeiqi";
    var name = String("wupeiqi");
    var age_str = String(18);
    
    // 常用方法
    var name = "wupeiqi";
    var value = names[0]                    // 索引
    var value = name.length                 // 获取字符串长度
    var value = name.trim()                 // 去除空白
    var value = name.charAt(index)          // 根据索引获取字符
    var value = name.substring(start,end)   // 根据索引获取子序列

      3. 布尔类型(Boolean)

        布尔类型仅包含真假,与Python不同的是其首字母小写

    var status = true;
    var status = false;
    /*
    在js中进行比较时,需要注意:
        ==       比较值相等
        !=       不等于
        ===      比较值和类型相等
        !===    不等于
        ||        或
        &&        且
    */

      4. 数组(Array)

        JavaScript中的数组类似于Python中的列表

    // 声明
    var names = ['武沛齐', '肖峰', '于超']
    var names = Array('武沛齐', '肖峰', '于超')
    // 常见方法
    var names = ['武沛齐', '肖峰', '于超']
    names[0]                        // 索引
    names.push(ele)                 // 尾部追加元素
    var ele = names.obj.pop()       // 尾部移除一个元素
    names.unshift(ele)              // 头部插入元素
    var ele = obj.shift()           // 头部移除一个元素
    names.splice(index,0,ele)       // 在指定索引位置插入元素
    names.splice(index,1,ele)       // 指定索引位置替换元素
    names.splice(index,1)           // 指定位置删除元素
    names.slice(start,end)          // 切片
    names.reverse()                 // 原数组反转
    names.join(sep)                 // 将数组元素连接起来以构建一个字符串
    names.concat(val,..)            // 连接数组
    names.sort()                    // 对原数组进行排序

      5. 字典(对象Object)

        JavaScript中其实没有字典类型,字典是通过对象object构造出来的。

    // 声明
    info = {
        name:'武沛齐',
        "age":18
    }
    // 常用方法
    var val = info['name']      // 获取
    info['age'] = 20            // 修改
    info['gender'] = 'male'     // 新增
    delete info['age']          // 删除
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>JavaScript学习</title>
        <style>
            table{
                /*边框合并*/
                border-collapse: collapse;
            }
            table th,table td{
                border: 1px solid #ddd;
                padding: 8px;
            }
            table th{
                font-weight: bold;
            }
        </style>
    </head>
    <body>
    <table>
        <thead>
            <tr>
                <th>学号</th>
                <th>姓名</th>
                <th>性别</th>
            </tr>
        </thead>
        <tbody id="body">
        </tbody>
    </table>
    <script type="text/javascript">
        var userList = [
            {id:1,name:'武沛齐',gender:'男'},
            {id:2,name:'吴老板',gender:'男'},
            {id:3,name:'肖老板',gender:'男'}
        ];
        // 笨方法
        for(var i in userList){
            var row = userList[i];
            var trNode = document.createElement('tr');
            var tdNodeId = document.createElement('td');
            tdNodeId.innerText = row.id;
            trNode.appendChild(tdNodeId);
            var tdNodeName = document.createElement('td');
            tdNodeName.innerText = row.name;
            trNode.appendChild(tdNodeName);
            var tdNodeGender = document.createElement('td');
            tdNodeGender.innerText = row.gender;
            trNode.appendChild(tdNodeGender);
            var bodyNode = document.getElementById('body');
            bodyNode.appendChild(trNode);
        }
        // 简便方法
        /*
        for(var i in userList){
            var row = userList[i];
            var trNode = document.createElement('tr');
            for(var key in row){
                 var tdNode = document.createElement('td');
                tdNode.innerText = row[key];
                trNode.appendChild(tdNode);
            }
            var bodyNode = document.getElementById('body');
            bodyNode.appendChild(trNode);
        }
        */
    </script>
    </body>
    </html>
    案例:动态表格

      6. 其他(null、undefine)

    • null是JavaScript语言的关键字,它表示一个特殊值,常用来描述“空值”,相当于Python的None。

    • undefined是一个特殊值,表示只是声明而变量未定义。

    var name;
    console.log(typeof(name));

     三、条件

       if,else,用于判断。

    var age = 18;
    if(age <18){
    }else if(age>=18 and 1 == 1){
    }else if(age>=30){
    }else{
    }

       switch,case,用于判断等于某些值。

    var num = 18;
    switch(num){
        case 10:
            console.log('未成年');
            break;
        case 18:
            console.log('成年');
            break;
        case 35:
            console.log('油腻老男人');
            break;
        case 100:
            console.log('....');
            break;
        default:
            console.log('太大了');
    }

     四、循环语句

      for(var i in ['国产','日韩','欧美']),默认生成索引,适用于:字符串、元组、字典。

    var names = ['武沛齐', '肖峰', '于超']
    for(var index in names){
        console.log(index, names[index])
    }

       for(var i=0;i<10;i++),自定义索引并设置增加步长,适用于:字符串、元组。(字典索引非有序)

    var names = ['武沛齐', '肖峰', '于超']
    for(var i=0;i<names.lenght;i++){
        console.log(i, names[i])
    }

     双重循环

    for(var i = 0; i < 5; i++){ //控制行数
        for(var j = 0; j < 10; j++){//控制的每行的*数 
            document.write('*');
        }
        document.write('<br>');
    }

     五、异常处理

    在JavaScript的异常处理中有两个注意事项:

    • 主动抛异常 throw “xx” 或 throw Error({code:1000,error:’错了’})
    • catch只能破获一次,如果想要对异常精细化处理可以在catch代码块中再做类型判断。
    try {
        //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
        var name = ''
    }
    catch (e) {
        // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
        //e是一个局部变量,用来指向Error对象或者其他抛出的对象
    }
    finally {
         //无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
    }

    六、函数

    1、函数

    function func(arg){
        return arg + 1;
    }

    2、匿名函数

    function (arg){
        return arg + 1;
    }
    // 一般用于当做参数使用,例如:设置定时器 setInterval(function(){},1000)
    这里的function(){}是没有函数名的函数。成为匿名函数,后面的1000是时间间隔,单位是毫秒。 

    3、自执行函数,自动触发执行

    (function(arg){
        console.log(arg);
    })('wupeiqi')
    <!--【可选部分】一般用于做数据隔离使用,因为JS中是以函数为作用域,所以当js代码比较多时,通过自执行函数做数据隔离(闭包)。 -->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>JavaScript学习</title>
    </head>
    <body>
    <script type="text/javascript">
        funcList = [];
        (function () {
            var name = '武沛齐';
            function f1() {
                console.log(name);
            }
            funcList.push(f1);
        })();
        (function () {
            var name = 'Alex';
            function f2() {
                console.log(name);
            }
            funcList.push(f2);
        })();
        funcList[0]()
    </script>
    </body>
    </html>
    例子

    七、json 序列化

      JavaScript提供了json序列化功能,即:将对象和字符串之间进行转换。

    1、JSON.stringify(object) ,序列化

    var info = {name:'alex',age:19,girls:['钢弹','铁锤']}
    var infoStr = JSON.stringify(info)
    console.log(infoStr) # '{"name":"alex","age":19,"girls":["钢弹","铁锤"]}'

      2、JSON.parse(str),反序列化

    var infoStr = '{"name":"alex","age":19,"girls":["钢弹","铁锤"]}'
    var info = JSON.parse(infoStr)
    console.log(info)

    应用场景:网络中数据传输本质上是基于字符串进行,如果想要把一个js的对象通过网络发送到某个网站,就需要对对象进行序列化然后发送。(以后学习ajax会经常使用)。

    JavaScript
        编程语言,由浏览器编译并运行
        1、存在形式:
        2、放置位置
            body内部最下面
        3、变量
            var a = 123; 局部变量
            a = 123;     全部变量 *****
            ===var a = 123;

     参考博客:https://pythonav.com/wiki/detail/5/63/

  • 相关阅读:
    利用Spark-mllab进行聚类,分类,回归分析的代码实现(python)
    c#项目返回文件案例
    设计模式 —— 组合模式
    设计模式 —— 备忘录
    设计模式 ——状态模式
    设计模式 —— 中介者模式
    设计模式 —— 适配器
    设计模式 —— 代理模式
    设计模式 ——门面模式
    设计模式 —— 享元模式
  • 原文地址:https://www.cnblogs.com/xiaobai686/p/11879309.html
Copyright © 2011-2022 走看看