JavaScript

一、JS的引用方式

1、内部脚本

内部脚本:将JS代码定义在HTML页面中。

JavaScript代码必须位于 <script></script> 标签之间。

在HTML文档中,可以在任意地方,放置任意数量的 <script>。

一般会把脚本置于 <body> 元素的底部,可改善显示速度

代码演示:

<body>
    <!-- 第一种方式: -->
    <script>
        alert("Hello js")
    </script>
</body>

2、外部脚本

外部脚本:将JS代码定义在外部文件中,然后引入到HTML页面中。

外部JS文件中只包含JS代码,不包含<script></script>标签。

注意<script>标签不能自闭合。

代码演示:

//Script外部脚本.js文件中
// 第二种引入方式
alert("Hello javaScript")
<body>
   <script src="JavaScript/Script外部脚本.js"></script>
</body>

二、JS基础语法

1、书写规范

结束符:每行结尾以分号结束,分号可有可无。

区分大小写:与Java一样,变量名、函数名以及其他一切东西都是区分大小写的。

注释:单行注释和多行注释。

大括号代表代码块

代码案例:

<script>
   //弹出框
   alert('Hello World');
   alert('Hello JS’)
   
   //条件判断
   if(count == 3){
      alert(count);
   }
</script>

2、输出语句

document.write() :向HTML的body内输出内容

window.alert() :弹出警告框

console.log() :写入浏览器控制台(程序员调试使用)

代码演示:

<body>
    <script>
        //方法一: 写入浏览器的body区域
        document.write("write");
        //方法二:弹出框
        window.alert("alert");
        //方法三:控制台
        console.log("log");
    </script>
</body>

3、变量

JavaScript 中用 let 关键字来声明变量 。

JavaScript 是一门弱类型语言,变量 可以存放不同类型的值 。

变量名需要遵循如下规则:

1、只能用 字母、数字、下划线(_)、美元符号($)组成,且数字不能开头。

2、变量名严格区分大小写,如 name 和 Name 是不同的变量。

3、不能使用关键字,如:let、var、if、for等。

注意:在早期的js中,声明变量还可以使用var,但是并不严谨(不推荐)。

4、常量

JavaScript 中用 const 关键字来声明常量 。

一旦声明,常量的值就不能改变(不可以重新赋值)。

5、数据类型

JavaScript的数据类型分为:基本数据类型和引用数据类型(对象)。

基本数据类型:

number:数字(整数、小数、NaN(Not a Number));

boolean:布尔。true,false;

null:对象为空。JavaScript是大小写敏感的,因此null、Null、NULL是完全不同的;

undefined:当声明的变量未初始化时,该变量的默认值是 undefined;

string:字符串,单引号、双引号、反引号皆可,推荐使用单引号;

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

模板字符串场景:

拼接字符串和变量

模板字符串语法:

“ `` ”(反引号,英文输入模式下按键盘的tab键上方波浪线 ~ 那个键);

内容拼接变量时,使用 ${} 包住变量;

代码如下:

<body>
    <script>
​
        //原始数据类型
        alert(typeof 3);//number
        alert(typeof 3.14);//number
​
        alert(typeof "A");//string
        alert(typeof 'Hello');//string
        alert(typeof `Hello JS`);//string
​
        alert(typeof true);//boolean
        alert(typeof false);//boolean
​
        alert(typeof null);//object
​
        let a;
        alert(typeof a);//undefined
​
        let name = 'Tim';
        let age = 18;
        alert(`我叫${name},我今年${age}了。`);
​
    </script>

6、运算符、流程控制语句

1、运算符

算术运算符:+ , - , * , / , % , ++ , --

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

比较运算符:> , < , >= , <= , != , == , ===

逻辑运算符:&& , || , !

三元运算符:条件表达式 ? true_value : false_value

2、= 与 == 与 === 区别:

= 是赋值操作。

== 在比较时,判断左右两边的值是否相等(会进行类型转换)。

=== 全等,在比较时,判断左右两边的类型和值是否都相等(不会进行类型转换)。

3、类型转换

在某些运算被执行时,系统内部自动将数据类型进行转换,这种转换成为 隐式转换。

字符串 <-> 数字:

1、+号两边只要有一个是字符串,都会把另外一个转成字符串

2、除了+外的算术运算符,比如:- * / 都会把字符串转为数字类型

其他类型 -> 布尔类型

1、Number:0 和 NaN为false,其他均转为true。

2、String:空字符串为false,其他均转为true。

3、Null 和 undefined :均转为false

4、流程控制语句

if…else if …else… ​ switch ​ for ​ while ​ do … while

与Java作用一致

代码示例:

<body>
​
    <script>
        let age = 20;
        let _age = '20';
        let $age = 20;
​
        alert(age == _age);
        alert(age === _age);
        alert(age === $age);
​
       // 类型转换 - 字符串 <-> 数字
        alert(typeof ('10' - 1));
        alert(typeof ('10' + 1));
        alert(parseInt('123'));
        alert(parseInt('12A3'));
        alert(parseInt('A123'));
​
        //类型转换 - 其他类型转为boolean
        if(0){
            alert("0 转换为false");
        }
        if(NaN){
            alert("NaN 转换为false");
        }
        if(1){
            alert("除0和NaN其他数字都转为 true");
        }
​
        if(""){
            alert("空字符串为 false, 其他都是true");
        }
​
        if(null){
            alert("null 转化为false");
        }
        if(undefined){
            alert("undefined 转化为false");
        }
    </script>
</body>

三、JS函数

1、什么是函数?

函数( function)是被设计用来执行特定任务的代码块,方便程序的封装复用。

定义:JavaScript中的函数通过function关键字进行定义

语法:

/*function functionName(参数1, 参数2 ...){
   要执行的代码
}*/
function add(a, b){
   return a + b;
}
//调用:函数名称(实际参数列表)
let result = add(10,20);
alert(result);

注意:由于JS是弱类型语言,形参、返回值都不需要指定类型。在调用函数时,实参个数与形参个数可以不一致,但是建议一致。

2、匿名函数

匿名函数是指一种没有名称的函数,由于它们没有名称,因此无法直接通过函数名来调用,而是通过变量或表达式来调用。

匿名函数定义可以通过两种方式:函数表达式 和 箭头函数。

函数表达式:

<body>
    <script>
//函数表达式 - 定义函数
       let arr = function(a,b){
        return a + b ;
       }
       let result = arr(10,42);
       alert(result);
    </script> 
</body>

箭头函数:

<body>
    <script>
​
//函数表达式 -- 箭头函数
       let arr = (a,b) => {
        return a + b ;
       }
       let result = arr(11,42);
       alert(result);
       
    </script> 
  </body>    

四、JS对象

1、内置对象

1、Array

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

特点:长度可变,类型可变 ​ 属性/方法:forEach方法仅遍历有值的元素

代码案例:

<body>
    <script>
        //1. 定义数组
        // let arr = new Array(1,2,3,4,5);---第一种
        let arr = [1,2,3,4,5];//--第二种
        arr[10] = 'A';
        //2. 数组属性 - length
       for(let i = 0; i< arr.length; i++){
        console.log(arr[i]);
       }
       console.log("-----------------------------------");
        //3. 数组方法 - forEach , map,  push , pop , unshift , shift , splice
        //遍历数组中的每一个有值元素
    arr.forEach(function(e){
         console.log(e);
     })
    //遍历每个数组元素,调用函数进行处理,并将结果封装到一个新数组中
         arr.map((e) => {
            console.log(e);
        }) 
        //添加数组尾部
        arr.push("B");
        //删除数组尾部的元素
        arr.pop();
        //添加数组头部
        arr.unshift("A")
        //删除数组头部第元素
        arr.shift();
        //从数组中删除元素
        arr.splice; 
    </script>
</body>

2、String对象

String字符串对象创建方式有两种:

<body>
    <script>
  //第一种
    let 变量名 = new String('…');
  //第二种
    let 变量名 = '…';
    </script>
</body>

代码案例:

<body>
    <script>
        //1. 创建字符串
        // let arr = new String('Hello JS');
        let arr = 'Hello JS';
        //2. 字符串属性 - length
        console.log(arr.length);
        //3. 字符串方法 - charAt , indexOf , trim , substring
        //返回在指定位置的字符
        console.log(arr.charAt(3));
        //检索指定内容在字符串中的索引位置的,返回值是索引
        console.log(arr.indexOf('JS'));
        //去除字符串两边的空格
        console.log(arr.trim());
        //提取字符串中两个指定的索引号之间的字符
        console.log(arr.substring(0,3));
    </script>
</body>

3、JS自定义对象

定义格式:

let 对象名 = {
    属性名1: 属性值1,
    属性名2: 属性值2,
    属性名3: 属性值3,
    方法名: function (形参列表) {}
}

调用格式:

对象名.属性名;
对象名.方法名();

4、JSON

概念:JavaScript Object Notation,JavaScript对象标记法 。

JSON是通过JavaScript对象标记法书写的文本 。

由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输。

定义:

格式: let 变量名 = '{"key1":value1, "key2":value2}';

JSON字符串 <-> JS对象 ​ JSON.parse : 将json字符串转为js对象 ​ JSON.stringify: 将js对象转为json字符串

let userStr = '{"name":"Jerry", "age":18, "addr":["北京","上海","西安"]}';
let jsObj = JSON.parse(userStr); //将json字符串转为JS对象
​
console.log(jsObj.name);let jsonStr = JSON.stringify(jsObj); //将JS对象转为JSON字符串
console.log(jsonStr);

2、BOM

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

组成: Window:浏览器窗口对象 Navigator:浏览器对象 Screen:屏幕对象 History:历史记录对象 Location:地址栏对象

1、Window

Window是浏览器窗口对象。

获取:直接使用window,其中 window. 可以省略。

属性 history:对 History 对象的只读引用。请参阅 History 对象。 location:用于窗口或框架的 Location 对象。请参阅 Location 对象。 ​ 方法 ​ alert():显示带有一段消息和一个确认按钮的警告框。 ​ confirm():显示带有一段消息以及确认按钮和取消按钮的对话框。 ​ setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。 ​ setTimeout():在指定的毫秒数后调用函数或计算表达式。

2、Location

Location是地址栏对象。 ​ 获取:使用 window.location 获取,其中 window. 可以省略。 ​ 属性: ​ href:设置或返回完整的URL。

<body>
    <script>
        alert("Hello BOM");
​
        let a = confirm("您确认此操作吗?");
        if(a){
            alert("确定了此操作")
        }else{
            alert("您取消了此操作")
        }
         //定时器 - setTimeout : 延迟多长之间之后执行... 只会执行一次; 单位: ms
​
            setTimeout(function(){
                alert("我执行啦~~~");
            },3000)
​
        定时器 - setInterval : 周期性执行, 执行多次; 单位: ms
​
            setInterval(() => {
            console.log("我执行啦~~~!!!!");
            }, 3000);
​
             location对象
             alert(location.href);
             setTimeout(function(){
                location.href = "https://www.jd.com";
             },3000)
    </script>
</body>

3、DOM

DOM概念:全名Document Object Model,文档对象模型。

将标记语言的各个组成部分封装为对应的对象

Document:整个文档

Element:元素对象

Attribut:属性对象

Text:文本对象

Comment:注释对象

JavaScript 通过DOM,就能够对HTML进行操作:

改变 HTML 元素的内容 ​ 改变 HTML 元素的样式(CSS) ​ 对 HTML DOM 事件作出反应 ​ 添加和删除 HTML 元素

DOM对象:浏览器根据HTML标签生成的JS对象

所有的标签属性都可以在这个对象上面找到 ​ 修改这个对象的属性,就会自动映射到标签身上

DOM的核心思想:将网页的内容当做对象来处理

document对象

网页中所有内容都封装在document对象中 ​ 它提供的属性和方法都是用来访问和操作网页内容的,如:document.write(…)

操作步骤:

1、获取DOM元素对象

2、操作DOM对象的属性或方法 (查阅文档)

获取DOM对象:

根据CSS选择器来获取DOM元素,获取匹配到的第一个元素:document.querySelector('选择器')

根据CSS选择器来获取DOM元素,获取匹配到的所有元素: document.querySelectorAll('选择器')

注意:得到的是一个NodeList节点集合,是一个伪数组(有长度、有索引的数组,但没有push、pop等数组方法)

五、事件监听

1、什么是事件? 什么是事件监听 ?

事件:HTML事件是发生在HTML元素上的 "事情"。比如: 1、按钮被点击 2、鼠标移动到元素上 3、按下键盘按键

2、事件监听

事件监听:JavaScript可以在事件触发时,就立即调用一个函数做出相应,也称为 事件绑定或注册事件。

事件源.addEventListener('事件类型', 事件触发执行的函数);

事件监听三要素 事件源:哪个dom元素触发了事件,要获取dom元素 事件类型:用什么方式触发,比如:鼠标单击 click,鼠标经过 mouseover 事件触发执行的函数:要做什么事

3、常见事件

1、鼠标事件

click:鼠标点击 mouseenter: 鼠标移入 mouseleave: 鼠标移出

2、键盘事件

keydown:键盘按下触发 keyup: 键盘抬起触发

3、焦点事件

focus:获得焦点触发 blur: 失去焦点触发

4、表单事件

input:用户输入时触发 submit: 表单提交时触发

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值