day03--JavaScript

一、基础语法

JavaScript是用来实现页面交互的一门脚本语言,用于控制网页行为

1.1 引用方式

内部方式 : 直接在HTML页面中使用<script>嵌入js脚本

方式一:在html中,定义js<scipt></script>,推荐写到body后

方式二:将js定义到一个单独的js文件中,通过script标签引入到页面中

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

外部方式 : 首先单独定义一个js文件, 再通过script将文件引入到HTML页面中

细节1:script是一个双标签

细节2:script如果引入了外部的js文件,标签内编写的js无效

1.2 输出语句

JS三种输出方式

  1. 浏览器弹框输出字符

                alert("弹窗内容")

     2. 输出html内容到页面

                document.write("输出内容")

     3. 输出到浏览器控制台

                console.log("内容")

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS三种输出方式</title>
</head>
<body>
</body>
<script>
    //1. 浏览器弹框输出字符
    alert("调用浏览器,弹框输出内容")
    //2. 输出html内容到页面
    document.write("输出html内容到页面")
    document.write("<b>看看效果</b>")
    //3. 输出到浏览器控制台
    console.log("输出到浏览器控制台,请按F12找到console频道查看")
</script>
</html>

运行效果如图所示:

 

1.3 变量声明

E6开始,js中用let关键字来声明变量,而且js是一门弱类型语言,变量可以存放不同类型的值

E6开始,js中用const关键字来声明常量,常量的值不能被改变

<script>
    // String str = "好好学习";
    let str= "好好学习";
    console.log(str);/*好好学习*/
    // int i = 1314;
    let i = 1314;
    console.log(i);/*1314*/
    // double d = 521.1314;
    let d = 521.1314;
    console.log(d);/*521.1314*/
    d = "你好";
    console.log(d); /*你好,任意类型均可修改*/
     // boolean b = true;
     let b = true;
    console.log(b); /*true*/
​
    /*定义常量*/
    // final Integer PI = 3.14;
    const PI = 3.14;
    console.log(PI);
    PI = 3.1415926;
    console.log(PI);/*报错,因为常量不能被改*/
</script>

 

 

1.4 数据类型

string:字符串类型(单引号 双引号)

number:数值类型(整数、小数、NaN)NaN表示出错了

boolean:布尔型

undefined:未定义的 (一般认为undefined表示程序出错)

object: 对象和null

typeof 变量     用于返回当前变量的类型

<script>
    //string:字符串类型(单引号  双引号)
    let str = "hello";
    console.log(typeof str);//typeof用于 返回当前变量的类型,输出str的数据类型
    //number:数值类型(整数、小数、NaN)
    let num = 3.14;
    console.log(typeof num);//返回number
    //boolean:布尔型
    let bool = false;
    console.log(typeof bool);//返回boolean
​
    //undefined:未定义的(一般认为undefined表示程序出错)
    let a;
    console.log(typeof a);//返回undefined
    
    //object: 对象和null
    let date = new Date();
    console.log(typeof date);//返回object
    console.log(typeof null);//返回object   
</script>

1.5 运算符

算数运算符: + - * / % ++ --

赋值运算符: = += -= *= /=

比较运算符:> < == (===) != (!==)

逻辑运算符: && || !

三元(目)运算符:条件表达式?为真: 为假

<script>
    let a = 10;
    let b = "10";
    let c = 3;
​
    // 算数运算符
    console.log(a+c);//13
    a++;
    console.log(a);//11
    let d = ++a;
    console.log(d);//12
    console.log(a <= c);//false
    console.log(a > b ? a :c);//12
​
    //与Java不同
    a = 10;
    console.log(a+b);//1010
    console.log(a/b);//结果为1  除了+剩余的计算符号,js都是尝试自动转换类型进行算术运算
​
    //比较运算符
    console.log(a==c);//false
    console.log(a==b);//true    "=="判断内容是否相等,不判断类型
    console.log(a===b);//false  "==="判断内容是否相等,同时判断类型是否相同
​
</script>

 

1.6 流程控制

  1. if判断 if (条件表达式) { 代码块; } else if(条件表达式) { 代码块; } else { 代码块; }

  2. switch判断 switch(条件表达式){ case 满足条件1 : 代码块 break; case 满足条件2 : 代码块 break; default: 默认代码块; }

  3. 普通for循环 for(let i= 0; i<10; i++){ 需要执行的代码; }

  4. 增强for循环** for(let obj of array){ 需要执行的代码; }**

  5. while循环 while (条件表达式) { 需要执行的代码; }

  6. do..while循环 do{ 需要执行的代码; }while(条件表达式);

  7. break和continue

    1. break: 跳出整个循环

    2. continue:跳出本次循环

在js中, 表示真假的表达式有很多种

  类型            真                  假

boolean       true               false

number        非0                 0

string           非空                空

object       真实对象     null(undefined)

<script>
    //1.定义数组
    let a = ['甄姬','貂蝉','妲己'];
    //2.普通for循环
    for(let i=0;i < a.length;i++){
        console.log(a[i]);
    }
    console.log("-----------------")
    //3.增强for循环(不需要通过索引访问数组)
    for(let item of a){
        console.log(item)
    }
</script>

 

二、函数和事件

2.1 函数

语法: function 函数名(形参1, 形参2){ 方法实现 }

调用: 函数名(实参1,实参2)

特点:

  1. 形式参数不需要类型,因为Js是弱类型语言

  2. 返回值也不需要定义类型,可以在函数内部直接使用return返回即可

  3. js中如果出现同名的方法,后面的会覆盖前面的

扩展:另外一种函数声明方法

        let funName = function(形参1, 形参2){ 方法实现 }

<script>
    //1、定义方法
    function add(a,b){
        let c = a + b;
        return c;
    }
​
    //2、定义方法,计算3个数相加
    function add(a,b,c){
        return a+b+c;
    }
//定义方法的方式二:
    let add1 = function(a,b,c){
        return a+b+c;
    }
​
    //3、调用方法
    let res = add(10,20);
    console.log(res);//NaN,报错,同名方法,下面的方法会覆盖前面的
    let res1 = add(10,20,30);
    console.log(res1);
    let res2 = add1(10,10,10);
    console.log(res2);
</script>

 

2.2 事件

2.2.1 常见事件

事件名说明
onclick鼠标单击事件
onblur元素失去焦点
onfocus元素获得焦点
onchange下拉框值发生改变
onload某个页面或图像被完成加载
onsubmit当表单提交时触发该事件
onkeydown某个键盘的键被按下
onmouseover鼠标被移到某元素之上
onmouseout鼠标从某元素移开

2.2.2 事件绑定

事件绑定有两种方式:

1. 通过 HTML标签中的事件属性进行绑定

在html标签中,通过事件=“方法名()”,将标签和js方法绑定到一起

2. 通过 DOM 元素属性绑定

在html标签中,定义一个id

在js代码中,通过js代码完成标签和方法的绑定

<body>
<input type="button" value="按钮1" onclick="on()"> <br>
<input type="button" value="按钮2" id="btn"> <br>
​
<script>
    //方式1:
    function on(){
        alert("点击了按钮")
    }
​
    //方式2:
    document.getElementById("btn").onclick = function(){
        alert("第二个按钮被点击了")
    }
</script>
​
</body>

2.2.3 页面交互案例

需求:

  1. 当姓名框获得焦点之后,设置其value值为"正在输入"

  2. 当姓名框失去焦点之后,设置其value值为"请输入"

  3. 当学历发生变化的时候,在控制台打印出变化之后的value值

  4. 当鼠标点击按钮时,弹窗显示被点击了

  5. 将js代码调整到页面的head部分,使其依旧可以运行

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>案例:页面交互</title>
​
<script>
        //window.onload 页面加载完成时间, 此事件跟着的方法会再当前页面全部加载完成之后再执行
       window.onload = function(){
        //1. 当姓名框获得焦点之后,设置其value值为"正在输入"
       document.getElementById("username").onfocus = function(){
           this.value = "正在输入";
       }
       //2. 当姓名框失去焦点之后,设置其value值为"请输入"
       document.getElementById("username").onblur = function(){
           this.value = "请输入";
       }
       //3. 当学历发生变化的时候,在控制台打印出变化之后的value值
       document.getElementById("edu").onblur = function(){
           console.log(this.value);
       }
       //4. 当鼠标点击按钮时,弹窗显示被点击了
       document.getElementById("btn").onclick = function(){
           alert("被点击了");
       }
       //5. 将js代码调整到页面的head部分,使其依旧可以运行
   
       }
</script>
​
    <!--
        常用事件:
            1. onfocus 获取焦点
            2. onblur 失去焦点
            3. onchange 表单控件的值改变时
            4. onclick 鼠标单击
            5. onload 页面加载完成
    -->
</head>
<body>
姓名 <input type="text" id="username"><br/>
学历
<select name="edu" id="edu">
    <option value="0">请选择</option>
    <option value="1">本科</option>
    <option value="2">大专</option>
</select>
<br/>
<button id="btn">按钮</button>
​
</body>
</html>
​

需求1~4的另一种实现方式:

<script>
   
    //1. 当姓名框获得焦点之后,设置其value值为"正在输入"
    function of(){
        document.getElementById("username").value = "正在输入";
    }
   //2. 当姓名框失去焦点之后,设置其value值为"请输入"
   function ob(){
        document.getElementById("username").value = "请输入";
    }
   //3. 当学历发生变化的时候,在控制台打印出变化之后的value值
    function oc(){
        console.log(document.getElementById("edu").value);
    }
   //4. 当鼠标点击按钮时,弹窗显示被点击了
   function oc1(){
    alert("被点击了")
   }
</script>

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值