易妖游戏网
您的当前位置:首页JavaScript (day02)

JavaScript (day02)

来源:易妖游戏网

JavaScript

 引入方式

第一种方式:内部脚本

将 JS 代码定义在 HTML 页面中
(1)JavaScript 代码必须位于< script >< /script >标签之间
(2)在 HTML 文档中,可以在任意地方,放置任意数量的< script >
(3)一般会把脚本置于< body >元素的底部,可改善显示速度

第二种方式:外部脚本

 将 JS 代码定义在外部 JS文件中,然后引入到 HTML 页面中
(1)外部 JS 文件中,只包含 JS 代码,不包含 < script >标签
(2)< script >标签不能自闭合
引入外部 js 的 < script >标签,必须是双标签

 

 基础语法

 书写语法

  •  (1)区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的
  • (2)每行结尾的分号可有可无
  • (3)注释:
    1️⃣单行注释:// 注释内容
    2️⃣多行注释:/* 注释内容 */
  • (4)大括号表示代码块

 输出语句 

(1)使用 window.alert() 写入警告框
(2)使用 document.write() 写入 HTML 输出
(3)使用 console.log() 写入浏览器控制台

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-基本语法</title>
</head>
<body>
   <script>
    window.alert("Hello JS"); //弹出框

    document.write("Hello JS"); //写入HTML页面

    console.log("Hello JS"); //浏览器控制台
   </script>
</body>
</html>

变量

(1)JavaScript 中用 var 关键字(variable 的缩写)来声明变量 。
(2)JavaScript 是一门弱类型语言,变量 可以存放不同类型的值
(3)变量名需要遵循如下规则:
1️⃣组成字符可以是任何字母、数字、下划线(_)或美元符号($)
2️⃣数字不能开头
3️⃣建议使用驼峰命名

var 定义的是一个全局变量, 还可以重复声明

(1)ECMAScript 6 新增了 let 关键字来定义变量。它的用法类似于 var,但是所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明。
(2)ECMAScript 6 新增了 const 关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。

  var :声明变量,全局作用域 / 函数作用域,允许重复声明
  let :声明变量,块级作用域,不允许重复声明
  const :声明常量,一旦声明,常量的值不能改变
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-基础语法</title>
</head>
<body>
<script>
    //定义变量
    // var a = 0;
    // a = "A";
    // alert(a);
    // var 定义的是一个全局变量, 还可以重复声明
    // {
    //     var a = 0;
    //     var a = "A";
    // }
    // alert(a);
    
    // let 定义的是一个局部变量, 不可以重复声明
    // {
    //     let a = 0;
    //     a = "A";

    //     alert(a);
    // }    
    //const 定义的是一个常量
    const pi = 3.14;
    //pi = 3.15;
    alert(pi);
</script>
</body>
</html>

 数据类型和运算符

数据类型:JavaScript中分为:原始类型 和 引用类型

使用 typeof 运算符可以获取数据类型:

<script>
    //原始数据类型
    alert(typeof 3); //number
    alert(typeof 3.14);//number

    alert(typeof "A"); //string
    alert(typeof 'Hello');//string

    alert(typeof true);//boolean
    alert(typeof false);//boolean

    alert(typeof null);//object

    var a ;
    alert(typeof a);//undefined?     
</script>
运算符

== 与 ===

== 会进行类型转换,=== 不会进行类型转换

类型转换

流程控制语句

  • if…else if …else…
  • switch
  • for
  • while
  • do … while

函数

介绍:函数(方法)是被设计为执行特定任务的代码块。
定义:JavaScript 函数通过 function 关键字进行定义,
语法为:

function functionName(参数1,参数2..){
    //要执行的代码
}
function add(a , b){
    return a + b;
}
  •  注意:
    (1)形式参数不需要类型。因为 JavaScript 是弱类型语言
    (2)返回值也不需要定义类型,可以在函数内部直接使用 return 返回即可
    (3)调用:函数名称(实际参数列表)
var result = add(10,20);
alert(result)

定义方式二:

var functionName = function (参数1,参数2..){
    //要执行的代码
    }
var add = function(a , b){
    return a + b;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-函数</title>
</head>
<body>
    
</body>
<script>
    //定义函数-1
    // function add(a,b){
    //    return  a + b;
    // }

    //定义函数-2
    var add = function(a,b){
        return  a + b;
    }

    //函数调用
    var result = add(10,20);
    alert(result);
</script>
</html>

 JS 中,函数调用可以传递任意个数的参数。

 JavaScript 对象

基本对象

Array 对象
String 对象

JSON 对象

Array 对象    JavaScript Array对象用于定义数组。

JavaScript 中 Array对象用于定义数组。

方式1:

var 变量名 = new Array(元素列表);

var arr = new Array(1,2,3,4); //1,2,3,4 是存储在数组中的数据(元素)

方式2:

var 变量名 = [ 元素列表 ]; 

var arr = [1,2,3,4]; //1,2,3,4 是存储在数组中的数据(元素)

通过索引来获取数组中的值。

arr[索引] = 值;

JavaScript 中的数组相当于 Java 中集合,数组的 长度是可变的,而 JavaScript 是弱类型,所以 可以存储任意的类型的数据

<script>
    //定义数组
    // var arr = new Array(1,2,3,4);
    // var arr = [1,2,3,4];

    // console.log(arr[0]);
    // console.log(arr[1]);

    //特点: 长度可变 类型可变
    // var arr = [1,2,3,4];
    // arr[10] = 50;

    // console.log(arr[10]);
    // console.log(arr[9]);
    // console.log(arr[8]);

    // arr[9] = "A";
    // arr[8] = true;

    // console.log(arr);
</script>

箭头函数(ES6):是用来简化函数定义语法的。具体形式为: (…) => { … } ,如果需要给箭头函数起名字: var xxx = (…) => { … }

 <script>   
    var arr = [1,2,3,4];
    arr[10] = 50;
    //for循环遍历所有值
    for (let i = 0; i < arr.length; i++) {
        console.log(arr[i]);
    }
    console.log("==================");

     //forEach: 遍历数组中有值的元素
    arr.forEach(function(e){
        console.log(e);
    })

    //ES6 箭头函数: (...) => {...} -- 简化函数定义
    arr.forEach((e) => {
        console.log(e);
    }) 

    //push: 添加元素到数组末尾
    arr.push(7,8,9);
    console.log(arr);

    //splice: 删除元素
    arr.splice(2,2);
    console.log(arr);
</script>

String 对象

(1)方式1:

var 变量名 = new String("…") ; //方式一

var str = new String("Hello String");

(2)方式2:

var 变量名 = "…" ; //方式二

var str = "Hello String";
var str = 'Hello String';
属性和方法

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-String</title>
</head>
<body>
    
</body>
<script>
    //创建字符串对象
    //var str = new String("Hello String");
    var str = "  Hello String   ";

    console.log(str);

    //length
    console.log(str.length);

    //charAt
    console.log(str.charAt(4));

    //indexOf
    console.log(str.indexOf("lo"));

    //trim
    var s = str.trim();
    console.log(s);

    //substring(start,end) --- 开始索引, 结束索引 (含头不含尾)
    console.log(s.substring(0,5));
</script>
</html>
JSON 对象
JavaScript自定义对象
在 JavaScript 中自定义对象特别简单,其语法格式如下:

<script>
    //自定义对象
    var user = {
        name: "Tom",
        age: 10,
        gender: "male",
        // eat: function(){
        //     alert("用膳~");
        // }
        eat(){
            alert("用膳~");
        }
    }
</script>
(1)概念:JavaScript Object Notation,JavaScript 对象标记法。
(2)JSON 是通过 JavaScript 对象标记法书写的  文本
(3)由于其语法简单,层次结构鲜明,现多用于作为  数据载体,在网络中进行数据传输。
JSON-基础语法

定义

var 变量名 = '{"key1": value1, "key2": value2}';

var userStr = '{"name":"Jerry","age":18, "addr":["北京","上海","西安"]}';

 

 (3)JSON字符串转为JS对象  JSON.parse

var jsObject = JSON.parse(userStr);

(4)JS对象转为JSON字符串  JSON.stringify

var jsonStr = JSON.stringify(jsObject);
<script>  
    //定义json
    var jsonstr = '{"name":"Tom", "age":18, "addr":["北京","上海","西安"]}';
    alert(jsonstr.name);

    //json字符串--js对象
    var obj = JSON.parse(jsonstr);
    alert(obj.name);

    //js对象--json字符串
    alert(JSON.stringify(obj));
</script>

BOM对象  浏览器对象模型

概念:Browser Object Model 浏览器对象模型,允许JavaScript与浏览器对话, JavaScript 将浏览器的各个组成部分封装为对象。

 Window对象 
  • (1)介绍:浏览器窗口对象。
  • (2)获取:直接使用window,其中 window. 可以省略。
  • (3)属性
    1️⃣history:对 History 对象的只读引用。请参阅 History 对象。
    2️⃣location:用于窗口或框架的 Location 对象。请参阅 Location 对象。
    3️⃣navigator:对 Navigator 对象的只读引用。请参阅 Navigator 对象。
  • (4)方法
    1️⃣alert():显示带有一段消息和一个确认按钮的警告框。
    2️⃣confirm():显示带有一段消息以及确认按钮和取消按钮的对话框。
    3️⃣setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。
    4️⃣setTimeout():在指定的毫秒数后调用函数或计算表达式。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-BOM</title>
</head>
<body>
    
</body>
<script>
    //获取
    // window.alert("Hello BOM");
    // alert("Hello BOM Window");

    //方法
    //confirm - 对话框 -- 确认: true , 取消: false
    // var flag = confirm("您确认删除该记录吗?");
    // alert(flag);

    //定时器 - setInterval -- 周期性的执行某一个函数
    // var i = 0;
    // setInterval(function(){
    //     i++;
    //     console.log("定时器执行了"+i+"次");
    // },2000);

    //定时器 - setTimeout -- 延迟指定时间执行一次 
    // setTimeout(function(){
    //     alert("JS");
    // },3000);
</script>
</html>
Location对象

DOM对象      文档对象模型 

DOM介绍

(1)概念:Document Object Model ,文档对象模型。
(2)将标记语言的各个组成部分封装为对应的对象:
1️⃣Document:整个文档对象
2️⃣Element:元素对象
3️⃣Attribute:属性对象
4️⃣Text:文本对象
5️⃣Comment:注释对象

(3)JavaScript 通过DOM,就能够对HTML进行操作:
1️⃣改变 HTML 元素的内容
2️⃣改变 HTML 元素的样式(CSS)
3️⃣对 HTML DOM 事件作出反应
4️⃣添加和删除 HTML 元素

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM演示</title>
</head>

<body>
    <div style="font-size: 30px; text-align: center;" id="tb1">课程表</div>
    <table width="800px" border="1" cellspacing="0" align="center">
        <tr>
            <th>学号</th>
            <th>姓名</th>
            <th>分数</th>
            <th>评语</th>
        </tr>
        <tr align="center" class="data">
            <td>001</td>
            <td>张三</td>
            <td>90</td>
            <td>很优秀</td>
        </tr>
        <tr align="center" class="data">
            <td>002</td>
            <td>李四</td>
            <td>92</td>
            <td>优秀</td>
        </tr>
        <tr align="center" class="data">
            <td>003</td>
            <td>王五</td>
            <td>83</td>
            <td>很努力,不错</td>
        </tr>
        <tr align="center" class="data">
            <td>004</td>
            <td>赵六</td>
            <td>98</td>
            <td>666</td>
        </tr>
    </table>
    <br>
    <div style="text-align: center;">
        <input id="b1" type="button" value="改变标题内容" onclick="fn1()">
        <input id="b2" type="button" value="改变标题颜色" onclick="fn2()">
        <input id="b3" type="button" value="删除最后一个" onclick="fn3()">
    </div>
</body>

<script>
    function fn1(){
        document.getElementById('tb1').innerHTML="学员成绩表";
    }
    
    function fn2(){
        document.getElementById('tb1').style="font-size: 30px; text-align: center; color: red;"
    }

    function fn3(){
       var trs = document.getElementsByClassName('data');
       trs[trs.length-1].remove();
    }
</script>

</html>

DOM是 W3C(万维网联盟)的标准,定义了访问HTML和XML文档的标准,分为3个不同的部分:

  • (1)Core DOM - 所有文档类型的标准模型
    1️⃣Document:整个文档对象
    2️⃣Element:元素对象
    3️⃣Attribute:属性对象
    4️⃣Text:文本对象
    5️⃣Comment:注释对象
  • (2)XML DOM - XML 文档的标准模型
  • (3)HTML DOM - HTML 文档的标准模型
    1️⃣Image:<img>
    2️⃣Button <input type=‘button’>
 获取DOM对象
  • (1)HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。
  • (2)Document对象中提供了以下获取Element元素对象的函数:

 案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM-案例</title>
</head>

<body>
    <img id="h1" src="img/off.gif">  <br><br>

    <div class="cls">传智教育</div>   <br>
    <div class="cls">黑马程序员</div>  <br>

    <input type="checkbox" name="hobby"> 电影
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 游戏
</body>

<script>
    //1. 点亮灯泡 : src 属性值
    var img = document.getElementById('h1');
    img.src = "img/on.gif";


    //2. 将所有div标签的内容后面加上: very good (红色字体) -- <font color='red'></font>
    var divs = document.getElementsByTagName('div');
    for (let i = 0; i < divs.length; i++) {
        const div = divs[i];
        div.innerHTML += "<font color='red'>very good</font>"; 
    }


    //3. 使所有的复选框呈现选中状态
    var ins = document.getElementsByName('hobby');
    for (let i = 0; i < ins.length; i++) {
        const check = ins[i];
        check.checked = true;//选中
    }

</script>
</html>

 JavaScript事件

事件介绍

事件:HTML事件是发生在HTML元素上的 “事情”。

按钮被点击 、鼠标移动到元素上 、按下键盘按键

事件监听:JavaScript可以在事件被侦测到时 执行代码。

事件绑定

方式一:通过 HTML标签中的事件属性进行绑定

方式二:通过 DOM 元素属性绑定

常见事件

JS事件监听 ---案例

;;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-事件-案例</title>
</head>
<body>
    <img id="light" src="img/off.gif"> <br>

    <input type="button" value="点亮" onclick="on()"> 
    <input type="button"  value="熄灭" onclick="off()">

    <br> <br>

    <input type="text" id="name" value="ITCAST" onfocus="lower()" onblur="upper()">
    <br> <br>

    <input type="checkbox" name="hobby"> 电影
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 游戏
    <br>

    <input type="button" value="全选" onclick="checkAll()"> 
    <input type="button" value="反选" onclick="reverse()">
</body>
<script>
    //1. 点击 "点亮" 按钮, 点亮灯泡; 点击 "熄灭" 按钮, 熄灭灯泡; -- onclick
    function on(){
        //a. 获取img元素对象
        var img = document.getElementById("light");
        //b. 设置src属性
        img.src = "img/on.gif";
    }
    function off(){
        //a. 获取img元素对象
        var img = document.getElementById("light");

        //b. 设置src属性
        img.src = "img/off.gif";
    }
    //2. 输入框聚焦后, 展示小写; 输入框离焦后, 展示大写; -- onfocus , onblur
    function lower(){//小写
        //a. 获取输入框元素对象
        var input = document.getElementById("name");

        //b. 将值转为小写
        input.value = input.value.toLowerCase();
    }
    function upper(){//大写
        //a. 获取输入框元素对象
        var input = document.getElementById("name");

        //b. 将值转为大写
        input.value = input.value.toUpperCase();
    }
    //3. 点击 "全选" 按钮使所有的复选框呈现选中状态 ; 点击 "反选" 按钮使所有的复选框呈现取消勾选的状态 ; -- onclick
    function checkAll(){
        //a. 获取所有复选框元素对象
        var hobbys = document.getElementsByName("hobby");
        //b. 设置选中状态
        for (let i = 0; i < hobbys.length; i++) {
            const element = hobbys[i];
            element.checked = true;
        }
    }   
    function reverse(){
        //a. 获取所有复选框元素对象
        var hobbys = document.getElementsByName("hobby");
        //b. 设置未选中状态
        for (let i = 0; i < hobbys.length; i++) {
            const element = hobbys[i];
            element.checked = false;
        }
    }
</script>
</html>

上一节:

下一节:

 

因篇幅问题不能全部显示,请点此查看更多更全内容