文章目录

  • JavaScript
  • 01 关于JavaScript
    • 1.1 JS的发展历史
    • 1.2 JS的特性
    • 1.3 JS的组成
    • 1.4 JSP和JS的区别
  • 02 在HTML中嵌入JS代码的三种方式
    • 2.1 事件与事件句柄
    • 2.2 第一种方式(事件句柄式):
    • 2.3 第二种方式(脚本块):
    • 2.4 第三种方式(外部引入js文件):
  • 03 变量
    • 3.1 变量的声明与赋值
    • 3.2 函数的定义与使用
    • 3.3 全局变量和局部变量

JavaScript

01 关于JavaScript

1.1 JS的发展历史

  • JavaScript是运行在浏览器上的脚本语言。简称JS。
  • JavaScript是网景公司(NetScape)的 布兰登艾奇(JavaScript之父)开发的,最初叫做LiveScript。
  • LiveScript的出现让浏览器更加的生动了,不再是单纯的静态页面了。页面更具有交互性。
  • 在历史的某个阶段,SUN公司和网景公司他们之间有合作关系,SUN公司把LiveScript的名字修改为JavaScript。
  • JavaScript这个名字中虽然带有“Java”但是和Java没有任何关系,只是语法上优点类似。他们运行的位置不同,Java运行在JVM当中,JavaScript运行在浏览器的内存当中。
  • 网景公司1998年被美国在线收购。网景公司最著名的就是领航者浏览器:Navigator浏览器。
  • LiveScript的出现,最初的时候是为Navigator浏览器量身定制一门语言,不支持其他浏览器。
  • 当Navigator浏览器使用非常广泛的时候,微软害怕了,于是微软在最短的时间内组建了一个团队,
    开始研发只支持IE浏览器的脚本语言,叫做JScript。
  • JavaScript和JScript并存的年代,程序员是很痛苦的,因为程序员要写两套程序。在这种情况下,有一个非营利性组织站出来了,叫做ECMA组织(欧洲计算机协会)ECMA根据JavaScript制定了ECMA-262号标准,叫做ECMA-Script。
  • 现代的javascript和jscript都实现了ECMA-Script规范。(javascript和jscript统一了。)

1.2 JS的特性

  • JavaScript程序不需要我们程序员手动编译,编写完源代码之后,浏览器直接打开解释执行。

  • JavaScript的“目标程序”以普通文本形式保存,这种语言都叫做“脚本语言”。

  • Java的目标程序已.class形式存在,不能使用文本编辑器打开,不是脚本语言。

1.3 JS的组成

完整的JavaScript由语言基础,BOM,DOM组成

  • ECMAScript:JS的核心语法(ES规范 / ECMA-262标准)

  • DOM:Document Object Model(文档对象模型:对网页当中的节点进行增删改的过程。)HTML文档被当做一棵DOM树来看待。

    var domObj = document.getElementById("id");
    
  • BOM:Browser Object Model(浏览器对象模型)
    关闭浏览器窗口、打开一个新的浏览器窗口、后退、前进、浏览器地址栏上的地址等,都是BOM编程

1.4 JSP和JS的区别

  • JSP : JavaServer Pages(隶属于Java语言的,运行在JVM当中)
  • JS : JavaScript(运行在浏览器上。)

02 在HTML中嵌入JS代码的三种方式

2.1 事件与事件句柄

  • 事件:JS是一门事件驱动型的编程语言,依靠事件去驱动,然后执行对应的程序。在JS中有很多事件,其中有一个事件叫做:鼠标单击,单词:click
  • 事件句柄:并且任何事件都会对应一个事件句柄叫做:onclick
  • 事件和事件句柄的区别是:事件句柄是在事件单词前添加一个on。而事件句柄是以HTML标签的属性存在的。
  • οnclick= “js代码” 的执行原理
    页面打开的时候,js代码并不会执行,只是把这段JS代码注册到按钮的click事件上了。等这个按钮发生click事件之后,注册在onclick后面的js代码会被浏览器自动调用。
  • 怎么使用JS代码弹出消息框
    在JS中有一个内置的对象叫做window,全部小写,可以直接拿来使用,window代表的是浏览器对象。
    window对象有一个函数叫做:alert,用法是:window.alert(“消息”);这样就可以弹窗了。

应用案例

script标签javascript代码必须放在script标签中,用户点击以下按钮,弹出消息框

2.2 第一种方式(事件句柄式):

  • 事件句柄=“js代码”,把这段代码注册到onclick之后,有操作后,js代码会在浏览器被自动调用
  • 弹窗消息的用法是:window.alert(“消息”)
  • JS中的一条语句结束之后可以使用分号“;”,也可以不用
  • JS中的字符串可以使用双引号,也可以使用单引号,内双外单或者内单外双。
<input type="button" value="hello" onclick="window.alert('hello js')"/>
<input type="button" value="hello" onclick='window.alert("hello jscode")'/>

alert弹窗中window可以省略

<input type="button" value="hello" onclick='alert("hello jscode")'/>

完整示列代码:

<!doctype html>
<html><head><title>HTML中嵌入JS代码的第一种方式</title></head><body><input type="button" value="hello" onclick="window.alert('hello js')"/><input type="button" value="hello" onclick='window.alert("hello jscode")'/><input type="button" value="hello" onclick="window.alert('hello zhangsan')window.alert('hello lis')window.alert('hello wangwu')"/><!-- window. 可以省略。--><input type="button" value="hello" onclick="alert('hello zhangsan')alert('hello lis')alert('hello wangwu')"/></body>
</html>

2.3 第二种方式(脚本块):

通过脚本块的方式,页面打开的时候执行,并且遵守自上而下的顺序依次逐行执行。(这个代码的执行不需要事件)。(CSS为样式块)

  • javascript的脚本块在一个页面当中可以出现多次。
  • javascript的脚本块出现位置也没有要求,
  • alert有阻塞当前页面加载的作用。(阻挡,直到用户点击确定按钮。)

脚本块的格式为script

<script type="text/javascript">window.alert("first.......");
</script>

完整代码如下

<script type="text/javascript">window.alert("first.......");
</script>
<!doctype html>
<html><head><title>HTML中嵌入JS代码的第二种方式</title><script type="text/javascript">window.alert("head............");</script></head><body><input type="button" value="我是一个按钮对象1" /><!--第二种方式:脚本块的方式--><script type="text/javascript">window.alert("Hello World!"); // alert函数会阻塞整个HTML页面的加载。</script><input type="button" value="我是一个按钮对象" /></body>
</html>

2.4 第三种方式(外部引入js文件):

  • 同一个js文件可以被引入多次,但实际开发中这种需求很少
  • 引入js文件的同时再写代码,文件会被执行,但代码块不会被执行。

完整代码如下

<!doctype html>
<html><head><title>HTML中嵌入JS代码的第三种方式:引入外部独立的js文件。</title></head><body>   <script type="text/javascript" src="js/1.js">// 这里写的代码不会执行。// window.alert("Test");</script><script type="text/javascript">alert("hello jack!");</script></body>
</html>

js文件

window.alert("hello js!");
window.alert("hello js!");
window.alert("hello js!");

03 变量

3.1 变量的声明与赋值

  • java中要求变量声明的时候是什么类型,不可变。编译期强行固定变量的数据类型称为强类型语言。数据类型 变量名;
  • 对比javascript,javascript是一种弱类型语言,没有编译阶段,一个变量可以随意赋值,赋什么类型的值都行,var 变量名;
var i = 100;
i = false;
i = "abc";
  • 当系统没有赋值的时候,会默认给undefined,undefined是系统的一个存在值
  • 当系统直接没声明直接调用一个值,会报错
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>关于JS中的变量</title></head><body><script type="text/javascript">var a, b, c = 200;alert("a = " + a);alert("b = " + b);alert("c = " + c);a = false;alert(a);a = "abc";alert(a);a = 1.2;alert(a);</script>
</body>
</html>

3.2 函数的定义与使用

JS函数类似Java中的方法

Java中定义方法的格式是

[修饰符列表] 返回值类型 方法名(形式参数列表){
方法体;
}

public static boolean login(String username,String password){...return true;
}boolean loginSuccess = login("admin","123");

JS是一种弱类型,JS中的函数不需要指定返回值类型,返回什么类型都行

函数的定义格式是

//第一种方式:
function 函数名(形式参数列表){函数体;
}
//第二种方式:
函数名 = function(形式参数列表){函数体;
}

例如函数

function sum(a, b){// a和b都是局部变量,他们都是形参(a和b都是变量名,变量名随意。)alert(a + b);
}sum(10,20);//函数必须调用才能执行//或者第二个格式
// 定义函数sayHello
sayHello = function(username){alert("hello " + username);
}// 调用函数
sayHello("zhangsan");

配合单击按钮框的逻辑完整代码如下

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>JS函数初步</title></head><body><script type="text/javascript">function sum(a, b){// a和b都是局部变量,他们都是形参(a和b都是变量名,变量名随意。)alert(a + b);}sayHello = function(username){alert("hello " + username);}// 调用函数sayHello("zhangsan");</script><input type="button" value="hello" onclick="sayHello('jack');" /> <input type="button" value="计算10和20的求和" onclick="sum(10, 20);" /></body>
</html>

重载的含义是:方法名或者函数名一样,形参不同(个数、类型、顺序)

  • JS当中的函数在调用的时候,参数的类型没有限制,并且参数的个数也没有限制,js本身自带重载。(弱类型)
  • 在JS当中,函数的名字不能重名,当函数重名的时候,后声明的函数会将之前声明的同名函数覆盖

完整代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>JS函数初步</title></head><body><script type="text/javascript">function sum(a, b){return a + b;}// 调用函数sumvar retValue = sum(1, 2);alert(retValue);var retValue2 = sum("jack"); // jack赋值给a变量,b变量没有赋值系统默认赋值undefinedalert(retValue2); // jackundefinedvar retValue3 = sum();alert(retValue3); // NaN (NaN是一个具体存在的值,该值表示不是数字。Not a Number)var retValue4 = sum(1, 2, 3);alert("结果=" + retValue4); // 结果=3function test1(username){alert("test1");}/*在JS当中,函数的名字不能重名,当函数重名的时候,后声明的函数会将之前声明的同名函数覆盖。*/function test1(){alert("test1 test1");}test1("lisi"); // 这个调用的是第二个test1()函数.</script>
</body>
</html>

3.3 全局变量和局部变量

  • 在函数体之外声明的变量属于全局变量;在函数体当中声明的变量,包括一个函数的形参都属于局部变量
  • 全局变量的生命周期是浏览器打开时声明,浏览器关闭时销毁,尽量少用。因为全局变量会一直在浏览器的内存当中,耗费内存空间
  • 局部变量的生命周期是:函数开始执行时局部变量的内存空间开辟,函数执行结束之后,局部变量的内存空间释放,局部变量生命周期较短

演示代码

// 全局变量
var username = "jack";
function accessUsername(){// 局部变量var username = "lisi";
// 就近原则:访问局部变量alert("username = " + username);}// 调用函数accessUsername();
// 访问全局变量alert("username = " + username);

先输出lisi后输出jack
因为局部变量结束后便释放了,所以局部变量没有值
而如果单纯没有定义全局变量,全在全局中输出局部变量那会报错

function accessAge(){var age = 20;
alert("年龄 = " + age);
}accessAge();// 报错(语法不对)alert("age = " + age);

如果一个变量在声明的时候没有定义var,默认是全局变量(即使在局部变量中声明)

// 以下语法是很奇怪的.
function myfun(){// 当一个变量声明的时候没有使用var关键字,那么不管这个变量是在哪里声明的,都是全局变量.
myname = "dujubin";}// 访问函数
myfun();alert("myname = " + myname); // myname = dujubin

JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量相关推荐

  1. 在HTML 中嵌入 JS 代码的三种方式

    一,在HTML中嵌入JS代码的第一种方式:行间事件 行间事件是指将JavaScript函数写到HTML元素中的执行事件. 1.JavaScript 是一种事件驱动型的编程语言,通常都是在发生某个事件的 ...

  2. HTML嵌入JS代码的三种方式

    目录 一.HTML嵌入JS代码的第一种方式:直接加一个事件句柄跟表达式 二.HTML嵌入JS代码的第二种方式:脚本块 三.HTML嵌入JS代码的第三种方式:外部引入js文件 一.HTML嵌入JS代码的 ...

  3. Web前端 | HTML嵌入JS代码的三种方式

    ✅作者简介:一位材料转码农的选手,希望一起努力,一起进步!

  4. JavaScript系列-02 HTML嵌入js代码的第二种方式

    javaScript系列 HTML中嵌入js代码的第二种方式 脚本块的方式 文章目录 javaScript系列 前言 一.了解脚本块的方式 1.1运行规则 二.执行原理 1.编写代码 2.效果 总结 ...

  5. JS-01-在HTML中嵌入JavaScript代码的三种方式

    JS-01-在HTML中嵌入JavaScript代码的三种方式 1.JavaScript概述 Web的组成有HTML.CSS还有即将要学习的JavaScript(简称JS). CSS和JS主要是服务于 ...

  6. 高仿【华为消费者业务官网】和精彩动画剖析:练习在低代码平台中嵌入JS代码

    本课程是华为消费者业务官网的仿站习作. 页面排版精美,照搬原站UI,一键导入HTML和CSS,还原度非常高,达到以假乱真的程度. 本课程重点是带领读者学习如何在众触低代码应用平台中嵌入JS代码,也有视 ...

  7. .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...

    这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...

  8. Pycharm中运行Python代码的几种方式

    Pycharm中运行Python代码的几种方式 在pycharm中的Python代码运行会出现各种奇葩的问题,比如,密码输入时不显示或没有提示,给我们带来一些麻烦,下面介绍几种代码运行的几种方式: 一 ...

  9. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

最新文章

  1. zabbix自动发现oracle表空间并监控其使用率
  2. 程序员需要牢记的一点
  3. 转载:ACL权限控制
  4. kafka 集群_Kafka集群监控系统Kafka Eagle部署与体验
  5. 【LeetCode】剑指 Offer 11. 旋转数组的最小数字
  6. [C++优先队列模板应用一] 哈夫曼树
  7. Fiddler——模拟限速
  8. linux# 解读wmctrl一览输出的项目
  9. 非法关机linux分辨率丢失,非法关机造成文件系统损坏,怎么办?请教:附图片...
  10. 嘉善 机器人比赛_第十一届省青少年机器人大赛嘉善摆擂
  11. TreeUtil(树形结构转换)
  12. 小米路由器刷Xiaomi Mi WiFi Mini openwrt
  13. Springboot 结合 Vue 进行本地接口联调
  14. 程序员代码面试指南第二版 4.猫狗队列
  15. 谷歌将发布全新搜索引擎,你期待吗?
  16. gazebo打开仿真环境报错gzserver: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreRenderSystem
  17. hadoop 四种压缩格式
  18. day1—ECS阿里云云计算服务
  19. 微型计算机在机械设计中的应用,自动化技术在机械设计制造中的应用初探
  20. 联想计算机功耗,用起来又流畅又舒服功耗还低_联想ThinkCentre E95z(i3 7100U/4GB/500GB/集成)_一体电脑评测-中关村在线...

热门文章

  1. android-ndk-r17c,使用android-ndk-r17c构建ffmpeg 4.2.1时遇到的问题
  2. 用PIL实现滤镜(一)——素描、铅笔画效果
  3. 如何判断一个网站是否是中文网站
  4. Android 编译framewok
  5. STM32开发记录三: 硬件IIC调试(STHC3温湿度传感器)
  6. 别闯进Hybrid App的误区
  7. JavaScript实现“打地鼠”游戏开发(3)——锤子的显示及游戏音效的添加(基于H5+CSS3+JS+jQuery实现)
  8. Centos7网络ip配置
  9. pinia的简单用法
  10. html css简单的文章展示