day3_javascript1

day3_javascript1

1js引入方式

      三种引入方式
       1 使用script标签 写js代码
       2 使用script标签 带src属性 引入js文件  此标签体失效
       3 在元素上直接写js代码     javascript:console.log(333)  建议少用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>

        console.log("hello javascript!!!!")


    </script>


    <script src="./js/myjs.js"></script>

</head>
<body>
    <!-- 
      script  脚本
      style   样式
      三种引入方式
       1 使用script标签 写js代码
       2 使用script标签 带src属性 引入js文件  此标签体失效
       3 在元素上直接写js代码     javascript:console.log(333)  建议少用


    
    -->


    <button onclick="javascript:console.log(333)">测试按钮</button>

</body>
</html>

2js变量声明

//js 弱类型变量

// 声明时不需要指定类型 赋值时根据值的类型决定变量类型

// 声明变量时 有统一的关键字

//es6之前 变量 var

//es6之后 变量 let 常量const

// 变量名

// 多单词+驼峰

// 避免与关键字 保留字冲突

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>

<script>
    //js 弱类型变量 
    //   声明时不需要指定类型  赋值时根据值的类型决定变量类型
    //   声明变量时 有统一的关键字
    //es6之前     变量 var
    //es6之后     变量 let  常量const

    //   变量名
    //   多单词+驼峰
    //   避免与关键字 保留字冲突 


    //   undefined类型 

    let gameTime;
    



</script>

</html>

3js数据类型

    js常见数据类型

    1.number  数字类型    整型 浮点型
                         10 10.1 js中number容易丢失精度 不要做精密数学计算

    2.boolean 布尔类型    true/false
                         true false  对 和  错
    3.string  字符串类型  js不分字符 字符串
                         ""  ''  ``   都是字符串
                         ``模板字符串 方便拼接变量 `a${myNum}a`
    4.undefined 未定义或未赋值 
                         未定义
                         未赋值  
                         两种情况


    5.Object  其他都是对象类型

注意:

typeof 检测变量数据类型

js中 变量可以通过赋值变换类型

不要随便变换类型 容易给自己挖坑

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
   
</body>

<script>
    /*
    js常见数据类型

    1.number  数字类型    整型 浮点型
                         10 10.1 js中number容易丢失精度 不要做精密数学计算

    2.boolean 布尔类型    true/false
                         true false  对 和  错
    3.string  字符串类型  js不分字符 字符串
                         ""  ''  ``   都是字符串
                         ``模板字符串 方便拼接变量 `a${myNum}a`
    4.undefined 未定义或未赋值 
                         未定义
                         未赋值  
                         两种情况


    5.Object  其他都是对象类型
    
    typeof 检测变量数据类型

    注意 js中 变量可以通过赋值变换类型 
             不要随便变换类型 容易给自己挖坑

    */ 

    let myNum = 10;
    console.log(myNum);
    console.log(typeof myNum);


    // myNum = true;
    // console.log(myNum);
    // console.log(typeof myNum);

    let newString = `'"a${myNum}a${myNum}"'`;
    console.log(newString);
    console.log(typeof newString);


    let newVal;
    console.log(newVal);
    console.log(typeof newVal);

    //console.log(newVal2);
    console.log(typeof newVal2);


    let myDate = new Date()
    console.log(myDate);
    console.log(typeof myDate);

    let myArr = []
    console.log(myArr);
    console.log(typeof myArr);


</script>

</html>

注意:

1函数是特殊类型 特指函数

2函数名是一种特殊变量 函数名不要跟其他变量重复 会产生覆盖 导致失效

4运算符

    算数运算符
    +    数字相加  或者字符串拼接
         注意 浮点数容易丢失精度 可以保留指定位数 (muNum1+muNum2).toFixed(1)
    
    -    带内置类型转换
         2-'1' = 1
         搭配使用parseInt 强制转为数字
    
    * /  数学运算

    %    取余数
         带小数点 会丢失精度

    ++ --
         i++ 先取值再运算
         ++i 先运算再取值

    赋值运算符
         = 赋值运算   赋值有返回值

    比较运算符
        == ===的区别
        要说明自动类型转换规则
        ==   比较值     包含自动类型转换
        ===  比较值和类型

    逻辑运算符
        &&  有一个false 结果false
        ||  有一个true  结果true 
        !   取反        !0 表示true

        

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    /*
    算数运算符
    +    数字相加  或者字符串拼接
         注意 浮点数容易丢失精度 可以保留指定位数 (muNum1+muNum2).toFixed(1)
    
    -    带内置类型转换
         2-'1' = 1
         搭配使用parseInt 强制转为数字
    
    * /  数学运算

    %    取余数
         带小数点 会丢失精度

    ++ --
         i++ 先取值再运算
         ++i 先运算再取值

    赋值运算符
         = 赋值运算   赋值有返回值

    比较运算符
        == ===的区别
        要说明自动类型转换规则
        ==   比较值     包含自动类型转换
        ===  比较值和类型

    逻辑运算符
        &&  有一个false 结果false
        ||  有一个true  结果true 
        !   取反        !0 表示true

        

    */ 


    // let muNum1 = 0.1;
    // let muNum2 = 0.2;
    // console.log((muNum1+muNum2).toFixed(1));
    
    //自动类型转换  有的运算带 有的运算不带
    //             搭配使用parseInt 强制转为数字
    // let muNum1 = 2;
    // let muNum2 = parseInt(1);
    // console.log(muNum1+muNum2);

    let muNum1 = 3.91;
    let muNum2 = 2;
    console.log(muNum1%muNum2);
    console.log((muNum1%muNum2).toFixed(2));
    console.log(parseInt(muNum1%muNum2) );

    let i = 1;
    console.log(++i);

    i=3;
    console.log(i=3);


    //自动类型转换 
    //可以转成数字的字符串 与数字之间
    let myStr = '1';
    let myNum = 1;
    console.log(myStr===myNum);
    //bol与数字0/1  false/true
    let testBol = true;
    let testNum = 1;
    console.log(testBol == testNum);
    
    //代码压缩
    console.log(!0);

    


</script>


</html>

数字 1549

把每个位数的数字都抽出来 1 5 4 9 在分别相加 得到19

取余数的方式 得到每个数字

   let tempNum = 1549

    let temp1 = tempNum%10
    let temp2 = parseInt(tempNum/10%10) 
    let temp3 = parseInt(tempNum/100%10) 
    let temp4 = parseInt(tempNum/1000) 

    console.log(temp1);
    console.log(temp2);
    console.log(temp3);
    console.log(temp4);

    console.log(temp1+temp2+temp3+temp4);

5条件语句

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>

    let myScore = 99;
    //通用性强  可以精确匹配 可以范围匹配
    if(myScore<60){
        console.log("奖励与女装小gege共进晚餐");
        
    }else if(myScore<80){
        console.log("奖励与壮汉小gege共进晚餐");
    }else{
        console.log("奖励与壮汉胡子小gege共进晚餐 再发给肥皂");
    }
    //switch 用在精确匹配
    let myGrade = 'SSR';
    switch(myGrade){
        case 'A':console.log("5090显卡");break;
        case 'B':console.log("5070显卡");break;
        case 'C':console.log("5060显卡");break;
        default:console.log("750ti显卡")
    }






</script>
</html>

6循环语句

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>

<script>
//for结构
//var 缺少块作用域
//for 用在已知次数的循环
    for(let i = 0; i < 10 ; i++){
        console.log(i);
    }
    // console.log(i);
    let myArr = [3,2,1];
    for(let i = 0; i < myArr.length ; i++){
        console.log(myArr[i]);
    }
    //for(let x in myArr) x 是索引
    console.log("---------------------");
    for(let x in myArr){
        console.log(myArr[x]);
    }
    //for(let x of myArr) x 是数据
    for(let x of myArr){
        console.log(x);
    }

//while结构
//while 未知次数的循环
    //先判断条件 再执行{}
    // while(flag){
    //     console.log('xxx');
    //     if(xxxx){
    //         结束循环
    //     }
    // }
    //先执行一次 在判断条件
    // do{
    //     //dosomething
    // }while(flag)



</script>

</html>

输出乘法口诀表

image-20250728115344736

    //输出乘法口诀表
    // 1x1=1
    // 2x1=2 2x2=4

    // for(let x = 1;x<=9;x++){
    //     for(let y = 1; y<=x;y++){
    //         document.write(`${y}x${x}=${x*y}`)
    //         document.write(`&nbsp;`)
    //         if(x*y<10){
    //             document.write(`&ensp;`)
    //         }
    //     }
    //     document.write(`<br>`)
    // }

    document.write(`<table border='1'>`)
    for(let x = 1;x<=9;x++){
        document.write(`<tr>`)
        for(let y = 1; y<=x;y++){
            document.write(`<td>`)
            document.write(`${y}x${x}=${x*y}`)
            document.write(`</td>`)
        }
        document.write(`</tr>`)
    }
    document.write(`</table>`)

7函数

7.1系统函数:

系统函数

​ 系统中预设好的函数 有指定的返回规则

​ 需要使用是 可以在任何地方调用 得到返回的结果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>

    /*
    控制台  黑色   类型字符串
           蓝色    数字  number  字母  特殊值 bol值
           灰色    undefined
    
    系统函数
       系统中预设好的函数 有指定的返回规则
       需要使用是 可以在任何地方调用 得到返回的结果

    */

    //parseInt() 
    //NaN not a number   不是数字
    //把可以转成数字的内容 转成数字
    //数字取整

    //parseFloat()
    //把可以转成数字的内容 转成数字 带小数点
    let myNum = 10.9;
    console.log(myNum);
    console.log(parseInt(myNum));
    console.log(parseFloat(myNum));

    //检测是否不是数字
    //纯数字 才不是NAN 带其他是NAN
    console.log(isNaN("10a"));

    //把可运算的字符串 转成运行结果
    console.log(eval("1+2*3") );
    


    


</script>
</html>

注意控制台颜色: 用来快速识别数据类型

控制台  黑色   类型字符串
       蓝色    数字  number  字母  特殊值 bol值
       灰色    undefined

7.2自定义函数:

 类似java中的自定义方法
    封装代码给自己使用 通过()调用
    
    两套语法规则
    //声明式函数
        function 函数名(参数列表,参数,参数){
            //执行的js代码
            return xxx;
        }
    //匿名函数给变量赋值
        let newFun = function (num1,num2){
            return num1+num2;
        }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>

    /*
    类似java中的自定义方法
    封装代码给自己使用 通过()调用
    
    两套语法规则
    //声明式函数
        function 函数名(参数列表,参数,参数){
            //执行的js代码
            return xxx;
        }
    //匿名函数给变量赋值
        let newFun = function (num1,num2){
            return num1+num2;
        }



    */
    //注意  函数名是一种特殊变量 注意不要与其他变量重复

    // function 函数名(参数列表,参数,参数){
    //     //执行的js代码
    //     return xxx;
    // }

    function myTest(){
        console.log("test......");
        
    }

    myTest()



    //js中没有重载 只有覆盖 
    function getResult(num1){
        //debugger
        let myRes = num1;
        console.log(myRes);
    }
    //形参和实参可以不对应
    //尽量对应使用
    //参数类型没有限定 根据执行的逻辑 不同的参数可能有不同的结果
    function getResult(num1,num2){
        console.log(1111)
        //debugger
        let myRes = num1+num2;
        //console.log(myRes);
        return myRes;
        console.log(2222);
        
    }



    let newNum = getResult(1,'a')
    console.log(newNum);

    let newFun = function (num1,num2){
        return num1+num2;
    }

    console.log(newFun(2,3));
     

    
</script>
</html>

注意:

1js中不存在重载 只有覆盖 后加载的覆盖先加载的

2形参与实参可以不对应 使用时尽量对应

3函数名是一种特殊变量 要注意函数名不要与变量名重复 会覆盖

7.3变量关键字和作用域

    let
    1.全局变量
    2.函数内
    3.循环块内

    const  修饰常量
        不能通过=重新赋值


    var (老版本使用)
    1.全局变量
    2.函数内
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    /*
    let
    1.全局变量
    2.函数内
    3.循环块内

    const  修饰常量
        不能通过=重新赋值


    var (老版本使用)
    1.全局变量
    2.函数内
    


    
    */
    
    //全局变量  当前页面 任何地方都可以生效 注意加载顺序
    let myNum = 10;
    //let myNum2;

    let myFun = function(){
        //函数内作用域
        //不要用这种写法 浏览器会追加定义全局变量
        //myNum2 = 20
        console.log(myNum);
        console.log(myNum2);
    }

    //myFun();
    // console.log("--------------");
    // console.log(myNum);
    // console.log(myNum2);

    let myStr = "aaa";

    myStr = "bbb";
    myStr = 110;

    console.log(myStr);

    const myStr2 = "aaa";
    //如果通过=重新赋值 会报错
    //不能通过=重新赋值
    //myStr2 = "bbb";



</script>
</html>

8事件

8.1 页面元素 函数 与事件的搭配关系

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button onclick="myTest()">点我</button>
</body>
<script>
    /*
    在页面元素中定义事件 触发自定义函数
    
    */
    function myTest(){
        console.log(1111);
        
    }


</script>
</html>

8.2常用事件

onclick 鼠标单击
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .cls1{
            width: 80px;
            height: 80px;
            font-size: 30px;
            background-color: lightblue;
            color: blueviolet;
        }

    </style>
</head>
<body>
    <span id="myTitle">特朗普</span>
    <button onclick="myBiu()">biubiubiu</button>
    <hr>
    <input id="myText" type="text"/>
    <button onclick="myChange()">改内容</button>

</body>
<script>

    /*
    1 确立 元素 函数 事件的对应关系
    2 通过dom树 找到元素 再修改特定的属性 达到改变的效果
        找元素    document.getElementById("myTitle")
        操作属性  写 元素.属性 = 新值;
                 读 元素.属性

        有哪些常见的属性 做页面效果的改变
        innerHTML   双标签的内容
        html元素常见属性
        value       单标签的内容
        type        表单元素类型
        sytle       样式
        className   样式类别
        .....
        html元素的属性都可以替换和修改


    */

    function myBiu(){
        console.log(1111);
        //js中Element html 标签
        console.log(document.getElementById("myTitle"));
        //通过js指定要修改元素的哪些属性
        
        console.log(document.getElementById("myTitle").innerHTML);
        document.getElementById("myTitle").innerHTML = "耳朵受伤了...." 
    }

    function myChange(){
        console.log(document.getElementById("myText"));

        document.getElementById("myText").value = "jack"
        document.getElementById("myText").type ="button"
        //document.getElementById("myText").style.color = "#FF0000"
        document.getElementById("myText").className = "cls1"
    }


</script>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

    </style>
</head>
<body>
    <input id="text1" type="text"/><button ondblclick="myCopy()">复制</button><input id="text2" type="text"/>
</body>
<script>

    /*
    点击事件  鼠标单击  onclick
             鼠标双击  ondblclick


             
    */

    function myCopy(){
        //console.log(1111);
        /*
        1找元素
        2改属性
        
        */
       let text1Val = document.getElementById("text1").value
        console.log(text1Val);
        document.getElementById("text2").value = text1Val

    }


    /*
    1 确立 元素 函数 事件的对应关系
    2 通过dom树 找到元素 再修改特定的属性 达到改变的效果
        找元素    document.getElementById("myTitle")
        操作属性  写 元素.属性 = 新值;
                 读 元素.属性

        有哪些常见的属性 做页面效果的改变
        innerHTML   双标签的内容
        html元素常见属性
        value       单标签的内容
        type        表单元素类型
        sytle       样式
        className   样式类别
        .....
        html元素的属性都可以替换和修改


    */



</script>
</html>
onmouseover 鼠标移入 onmouseout 鼠标移出
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .mydiv{
            width: 200px;
            height: 200px;
            border: 1px solid black;
            
        }
    </style>
</head>
<body>
    <div id="mydiv" class="mydiv" onmouseover="changeBGC('blue',this)" onmouseout="changeBGC('white',this)"></div>
    <button onclick="changeBGC('blue',this)">换背景颜色</button>

</body>
<script>
    /*
    onmouseover  鼠标移入
    onmouseout   鼠标移出
    

    如果赋值是字符串 注意 带引号 ''
             数字   11 22
             bol值  true false


    关键字this
        直接使用this 默认指向 当前窗口 

        事件调用函数时 实参传this
                      可以获取到当前发生事件的元素
                      可以简化元素的获取过程

    */

   
    

    function changeBGC(myColor,myObj){
        console.log(myObj);
        
        myObj.style.backgroundColor = myColor
    }

    // function changeBGC(){
        
    //     document.getElementById("mydiv").style.backgroundColor = "#F00"
    // }


    // function changeBGC2(){
        
    //     document.getElementById("mydiv").style.backgroundColor = "white"
    // }

</script>
</html>
onfocus 获得焦点 onblur 失去焦点
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- <input id="text1" type="text" onfocus="changeColor('#F0A','text1')" onblur="changeColor('black','text1')"/><br>
    <input id="text2" type="text" onfocus="changeColor('#F0A','text2')" onblur="changeColor('black','text2')"/><br> -->
    <input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br>
    <input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br>
    <input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br>
    <input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br>
    <input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br>
</body>
<script>
    /*
        onfocus 获得焦点
        onblur  失去焦点
    
    
    */


    function changeColor(myColor,myObj){
        myObj.style.color=myColor
        
    }

    // function changeColor(myColor,testId){
    //    document.getElementById(testId).style.color=myColor
        
    // }

    // function changeColor2(){
    //    document.getElementById("text1").style.color="black"
        
    // }


</script>
</html>
onchange 内容改变
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" onchange="myTest(this)"/>
    <hr>
    <select onchange="changeTitle(this)">
        <option disabled selected>-----请选择-----</option>
        <option value="您好">中国</option>
        <option value="hello">美国</option>
        <option value="八嘎呀路">日本</option>
    </select>
    <h1 id="myTitle"></h1>
</body>
<script>

    /*
    onchange 
            文本框使用   失去焦点 内容改变
            下拉列表     点击选项 内容改变
            
    
    */
       function changeTitle(myObj){
            document.getElementById("myTitle").innerHTML = myObj.value
        }

    // function changeTitle(myObj){
    //     console.log(myObj.value);
    //     let helloText = "";
    //      switch(myObj.value){
    //         case '001':helloText = "您好";break;
    //         case '002':helloText = "hello";break;
    //         case '003':helloText = "八嘎";break;
    //      }

    //     document.getElementById("myTitle").innerHTML = helloText
    // }

    function myTest(myObj){
       console.log( myObj.value);
        
    }


</script>
</html>
posted @ 2025-07-29 22:28  小胡coding  阅读(6)  评论(0)    收藏  举报