前端补充17(JS)

发布于:2024-04-25 ⋅ 阅读:(25) ⋅ 点赞:(0)

一、JS组成成分

JS的组成成分,由三部分组成

    第一、ECMAScript:语法规则,如何定义变量,数据类型有哪些,如何转换数据类型,if判断         if-else

    while for for-in forEach do-while switch  数组 函数 对象 日期对象等等

    第二、DOM:Document Object Model ------- 文档对象模型

    第三、BOM:Browser Object Model --------- 浏览器对象模型

 二、JS的书写位置

        CSS的书写位置:行内式、内嵌式、外链式

        JS和CSS同理:行内式、内嵌式、外链式

        注意:所有的JS都是写在script上的

        input 文本框

        type 类型

        button 按钮

        onclick---点击事件(事件就是用户的操作)

        alert()---弹出框,警示框

        注意:外双内单(推荐)----外面是双引号里面必须是单引号(也可以是外单内双)

<!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>
    <script>
    /*
    第一、ECMAScript:语法规则,如何定义变量,数据类型有哪些,如何转换数据类型,if判断         if-else
        while for for-in forEach do-while switch  数组 函数 对象 日期对象等等
    第二、DOM:Document Object Model ------- 文档对象模型
    第三、BOM:Browser Object Model --------- 浏览器对象模型
    */
    </script>
    <input type="button" value="点击我" onclick="alert('出错了,哈哈')">
</body>
</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>
    <script>
        alert("我是内嵌式js效果")
    </script>
</head>
<body>
    <!--JS书写位置-->
    <script>
        /*
        内嵌式js就是把js写在 /head上面,一堆script里面的
        */
    </script>
    <!--行内式js:在标签后面直接写js语法----语法一定要记住-->
</body>
</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>
    <script src="js/demo.js"></script>
</head>
<body>
    <!--
        第一、先建立一个html的页面
        第二、建立一个js的文件夹,文件夹里面建立一个js的文件   例如demo.js 扩展名必须是.js
        第三、把外部js的文件链接到页面里面<script src="js/demo.js"></script>
    -->
</body>
</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>
</head>
<body>
    <script>
        /*
        变量:随时随地会发生变化的量
        作用:存储数据的,并且操作数据,存储数据的箱子--容器
        如何定义变量?关键字 以前 var ES5版本里面定义变量方式,现在是ES6里面 let 或者 const
        所以推荐使用 let 或者 const

        alert()-----这个是弹出框------不推荐使用
        console.log()-----这个是控制台输出的--推荐使用的

        */
       /*
       驼峰命名法:第一个单词首字母小写,从第二个单词开始后面的单词首字母都是大写  例如:myFirstName
       还有一种驼峰 MyLastName  推荐使用第一种小驼峰
       以字母,数字,下划线和$组成的(注意不能以数字开头,可以以数字结尾)
       */
       let userName = '张三';
       let oneNumber = 123456;
       let num1,num2,num3;
       num1=100;
       num2=10;
       num3=5;
       // alert(userName);
       // alert(oneNumber); 会弹出两个框
       console.log(userName);
       console.log(oneNumber);
       console.log(num1,num2,num3);
       //也可以存储true false null
       var x='小花';//目前我们变量名推荐使用 let 以前是用var
       console.log(x);
    </script>
</body>
</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>
</head>
<body>
    <script>
        //js的基本类型
        //number,string,boolean,null,undefined
        //number:数字类型(整数和小数)-------JS是弱类型语言,包含了整数和小数
        let num1 = 10;
        console.log(typeof(num1));
        console.log(typeof num1);
        let num2=88.88;
        console.log(typeof num2);
        //string:字符串类型----字符可以用单引号或双引号都是可以的
        let str1 = '王五';
        let str2 = '123';
        console.log(typeof str1);
        console.log(typeof str2);

        //null:空数据类型
        let nul = null;
        console.log(typeof nul); //object---历史遗留的问题
        //扩展----如何解决
        console.log(Object.prototype.toString.call(nul));  //[object Null]

        //undefined:未定义(什么情况下会出现 undefined,声明了变量,并没有赋值)
        let age;
        console.log(age);

        /*
        如何获取这个数据类型呢:使用 typeof
        typeof 语法
        1.typeof(变量名)
        2.typeof 变量名 ----- 推荐大家使用的
        */
    </script>
</body>
</html>

转义字符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--字符串:可以是单引号也可以是双引号-->
    <!--转义字符  \t  \n  \"  \'-->
    <script>
        let str1 = '10';
        console.log(typeof str1);
        console.log("哈哈\t呵呵");
        console.log("哈哈\n呵呵");
        console.log("哈哈\"呵呵");
        //字符串拼接
        let num1 = 10;
        let num2 = 20;
        console.log(num1 + num2);
         let str2 = "你";
         let str3 = "好";
         console.log(str2 + str3);
         console.log(str1 + num1);//1010
        /*
        +如果两边都是数字则相加
        +如果都是字符串,或则一个字符串一个数字,则进行拼接
        */
    </script>
</body>
</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>
</head>
<body>
    <script>
        /*
        面试题----隐式转换
        */
    let age1 = 10;
    let age2 = "5";
    console.log(age1 - age2);//隐式转换,把字符串直接转换为数字 5
    console.log(age1 * age2);//50
    console.log(age1 / age2);//2
    console.log(age1 % age2);//0
    </script>
</body>
</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>
</head>
<body>
    <script>
        /*
        null和undefined和bull类型
        */
       //bool类型:true false
       let flag = true;
       console.log(flag);//true看作1  false看作0
       // null 必须手动赋值一个null
       let nul1 = null;
       console.log(typeof nul1);
       //undefined 声明变量了,没有复制结果就是undefined
       let age;
       console.log(age);
       console.log(666);
       console.log(true);
       console.log(null);
       console.log(undefined);
       //总结:字符串是黑色的,数字和bool是蓝色的,null和undefined是灰色的
    </script>
</body>
</html>