详解JavaScript(ECMAScript与DOM)(上)

简介: 详解JavaScript(ECMAScript与DOM)(上)

编译软件:IntelliJ IDEA 2019.2.4 x64

运行环境:Google浏览器

前言

前端大佬都在用的js,号称前端三大件的“JS" , 你真的了解吗?本文带你一览js之魅力,十分钟就可以让你快速上手JS。


一. 简介

JavaScript(简称 JS)是一种广泛用于客户端和服务器端 Web 开发的编程语言。它是一种动态类型、解释型语言,最初由网景公司(Netscape)开发,后来由 Ecma 国际组织标准化。JavaScript 的语法灵活,易于学习和使用,可以用于开发各种类型的 Web 应用程序,包括动态网页、单页应用程序、桌面应用程序、游戏、移动应用程序等。

JavaScript总共分成三部分: ECMAScript(基本语法)、BOM(浏览器对象模型)、DOM(文档对象模型)


二. js的特性

  • 脚本语言,它运行在客户端

JavaScript是一种解释型的脚本语言。不同于C、C++、Java等语言先编译后执行, JavaScript不会产生编译出来的字节码文件,而是在程序的运行过程中对源文件逐行进行解释。

  • 基于对象

JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。但是它并没有面向对象的三大特性。

  • 弱类型

JavaScript中虽然也有明确的数据类型,但是声明一个变量后它可以接收任何类型的数据,并且会在程序执行过程中根据上下文自动转换类型。

  • 事件驱动

JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。

  • 跨平台

JavaScript脚本语言依赖于浏览器的支持,只要有浏览器,JavaScript脚本语言可以在任意平台运行


三. js的Helloworld

需求: 在网页上创建一个按钮,当用户单击这个按钮的时候,给出一个警示框

代码演示如下:

  1. HTML代码
<input type="button" value="点我" id="btn02"/>
  1. js代码
    位置: head标签内
<script>
        window.onload=function () {
            var btn02=document.getElementById("btn02");
            btn02.onclick=function () {
                alert("你点到我了...");
            }
        }
</script>


四. js的引入方式

4.1 内部js的方式

注意:

  • script标签可以在html代码的任意位置
  • JavaScript代码要写在script标签内
  • 为了方便查询或操作HTML标签(元素),script标签可以写在body标签后面

代码解释:

<script>
  window.onload=function () {} 网页加载完后执行的函数
  var btn01=document.getElementByid("btn01");   从文档对象中根据id属性值获得一个Element(元素)
    btn01.onclick=function () {   为btn01这个元素绑定单击事件,当用户单击元素的时候,执行后面的函数
        alert("你点到我了...");  警示框,弹出文本信息给用户
    }
</script>

4.2 外部js的方式

步骤:

新建一个js文件(后缀名为.js的文件),将js代码写在js文件内,在html文件内引入js即可

注意:

  1. 引用外部JavaScript文件的script标签里面不能写JavaScript代码
  2. 先引入,再使用
  3. script标签不能写成单标签

代码演示如下:

window.onload=function () {
    var btn02=document.getElementById("btn02");
    btn02.onclick=function () {
        alert("你点到我了...");
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/js1.js"></script>
</head>
<body>
    <input type="button" value="点我" id="btn02"/>
</body>
</html>

注意:

如果此时script标签已经引入一个js 文件,那么该标签内的js代码将会失效,但是这个html文件可以引入多个script标签

代码演示如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/js1.js">
      alert(100);
  </script>
    <script>
        alert(200);
    </script>
</head>
<body>
    <input type="button" value="点我" id="btn02"/>
</body>
</html>


五. js的数据类型

5.1 基本数据类型

数值型: number

JavaScript不区分整数、小数,例如10 29 1.5 1.34 …

字符串: String

JavaScript不区分字符、字符串,单引号与双引号意思一样。 例如 “10” “abc” ‘你好’ …

布尔型: boolean

在JavaScript中,其他类型和布尔类型都可以进行自动转换

true非零的数值,非空字符串,非空对象

false零,空字符串,null,undefined

注意:

在js中的if() 里,其他数据类型都可以和布尔型自动转化

空串/o/undefined/null/NaN都是false,其他都是true

特殊的值:undefined/null/NaN

5.2 引用数据类型

5.2.1 对象

  • 所有new出来的对象
  • 用{}声明的对象

5.2.1 数组

  • 用[]声明的数组

六. 变量的声明

  • 关键字var,其实ECMAScript6之后建议使用let
  • 数据类型JavaScript变量是弱类型的,可以接收任意类型的数据
  • 标识符严格区分大小写
  • 变量使用规则
  • 如果使用了一个没有声明的变量,那么会在运行时报错
    Uncaught ReferenceError: b is not defined
  • 如果声明一个变量没有初始化,那么这个变量的值就是undefined

6.1 声明方式一

语法:

var 变量名;

变量名=值;

代码演示如下:

var value;
 value="123";
 //console.log() 用于控制台输出
 console.log(value) ;
 //typeof 用于确定给定变量的数据类型并返回
 console.log(typeof value) ;

6.2 声明方式二

语法:

var 变量名=值;

代码演示如下:

var value="123";
 //console.log() 用于控制台输出
 console.log(value) ;
  //typeof 用于确定给定变量的数据类型并返回
 console.log(typeof value) ;


七. 函数

7.1 内置函数

  • 警示框
alert("警示内容");
  • 确认框,有返回值;确认是true,取消是false
confirm("提示内容");
  • 控制台打印日志
console.log("输出内容");

tips:

如何打开控制台并查看输出的内容?

打开任意浏览器,将光标置于你要查看的页面上,按“F12"打开开发者工具,在console那一栏就是

7.2 自定义函数

7.2.1 有名函数

位置:

script标签下

语法:

function方法名(形参列表){代码块}

①无参无返回值

function fun01(){
  console.log("这是fun01函数");
}

②有参无返回值

function fun02(a,b,c,d){
  console.1og("这是fun02函数"+a+b+c+d)
}

③有参有返回值

function fun03(a,b,c,d){
  console.log("这是fun02函数"+a+b+c+d);
  return值;
}

7.2.2 匿名函数

语法:

function(形参列表) {代码块}

应用场景:

a.在事件绑定位置

btn01.οnclick=function (){}

b.可以将函数看作是一个对象

var fun03=function(
  console.1og("这是fun03函数")
}

7.3函数的调用

语法:

var 变量名=函数名(实参列表)

代码演示如下:

//声明并创建函数f1,返回结果
         function f1() {
             return 23*12;
         }
         //定义变量result接收函数f1的返回值
         var result=f1();

注意:

实参少于形参,多出来的形参是未定义

实参多于形参,多出来的实参接收不到


八. 对象

JavaScript中没有『类』的概念,对于系统内置的对象可以直接创建使用

8.1通过new关键字创建对象

①声明创建对象

var obj01=new object();

②属性与属性值的设置

注意:

属性和属性值可以自由设置,你想设什么属性就设,想填什么属性值就填

代码演示如下:

obj01.id=101;
obj01.name="张三";
obj01.abc="北京";

或者这样设置属性值

代码演示如下

//设置属性值
obj01.stuName = "tom";
obj01.stuAge = 20;
obj01.stuSubject = "java";

③ 属性值的获取

代码演示如下:

console.log(obj01.id)
console.logtobj01.name)
console.log(obj01.abc)
console.log(obj01.age)

④ 对象中函数的设置

代码演示如下:

//对象obj01创建一个方法eat()
obj01.eat=function (){
  alert(this.name+"eat");
}

小tips:

this关键字只有两种情况:

  • 在函数外面this关键字指向window对象(代表当前浏览器窗口)
  • 在函数里面this关键字指向调用函数的对象

⑤函数的调用

代码演示如下:

obj01.eat();

8.2 通过{}创建对象

代码演示如下:

//声明创建对象
var obj02={
1d:102,
name:"李四",
age:18,
//创建函数eat
eat:function ()
alert("eat");
},
//创建函数run
run:function ()
alert("run");
}

ps:使用方式和8.1节一致,这里暂不赘述

相关文章
|
1天前
|
前端开发 JavaScript 数据安全/隐私保护
前端javascript的DOM对象操作技巧,全场景解析(二)
前端javascript的DOM对象操作技巧,全场景解析(二)
|
1天前
|
移动开发 缓存 JavaScript
前端javascript的DOM对象操作技巧,全场景解析(一)
前端javascript的DOM对象操作技巧,全场景解析(一)
|
1天前
|
JavaScript 前端开发
JavaScript DOM 文档对象模型(获取、改变html元素)
JavaScript DOM 文档对象模型(获取、改变html元素)
|
9天前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。
|
12天前
|
JavaScript 前端开发
JavaScript Dom方法
JavaScript Dom方法
36 2
|
13天前
|
JavaScript 前端开发 API
JavaScript DOM 文档对象模型
JavaScript DOM 文档对象模型
|
16天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
16 0
|
16天前
|
JavaScript 前端开发 安全
JavaScript DOM 操作:解释一下浏览器的同源策略。
**同源策略**是浏览器安全基石,它阻止脚本跨不同协议、域名或端口访问资源,防止恶意行为。例如,HTTP页面无法直接用JS获取HTTPS页面内容。**CORS**允许跨域请求,但需服务器配合设置,通过`document.domain`属性可配置,但仍受限于服务器配置。
16 4
|
16天前
|
JavaScript 前端开发
JavaScript DOM 操作:如何检测浏览器是否支持某个特性?
【4月更文挑战第15天】使用Modernizr库检测浏览器特性:添加 `<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>` 到HTML,然后通过 `Modernizr.localstorage` 进行检测,如支持localStorage则执行相应代码,否则执行备用逻辑。
15 0
|
5月前
|
XML JavaScript 前端开发
Javaweb之javascript的DOM对象的详细解析
1.5.3 DOM对象 1.5.3.1 DOM介绍 DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。
44 0