4.JS基础

(1)JS的引入方式

HTML内部引入

  • 将JS代码放在“< script >< /script >”标签之间
  • 在HTML文档中,可以在任意地方放置任意数量的< script >
  • 一般将其放在 body 元素的底部,改善显示速度
<script>
alert("WY") //JS代码
</script>

外部.js文件引入

在外部单独编写js脚本,在HTML中写入以下代码引入JS脚本

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

(2)JS书写语法规则

  • JS区分大小写
  • 每行的分号可有可无
  • 注释:单行// 多行/* */
  • 大括号{}表示代码块

(3)JS的三种输出语法

alert()

  • Window.alert()写入警告框
        window.alert("警告")       //打开网页后浏览器弹出警告框

write()

  • 写入HTML页面中
        document.write("Hi")     //直接写入HTML网页中

log()

写入浏览器控制台

控制台打开方式:右建-检查-console 或者 F12

        console.log("Bye")       //写入浏览器控制台

(4)变量

变量名的规则
  • 组成字符为任何字母,数字,下划线_ 美元符号$
  • 数字不能开头
  • 使用驼峰命名
变量的声明
  • JS语言是弱类型语言,可以存放不同类型的值
  • var定义的变量作用域大,属于全局变量
  • var定义的变量可以再次重复定义
var a = 20;
a = "张三";
新增变量定义关键字
  • let关键字定义的变量只在所在的代码块内有效,且不允许重复声明
  • const关键字用来声明一个只读的常量,一旦声明,常量的值不能改变。

(5)数据类型&运算符

  • JS的数据类型分为:原始类型 和 引用数据类型
  • typeof可以获取数据类型

原始类型

number:数字
string:字符串,单双引号都可以
boolean:布尔。true,flase
null:对象为空
undefined:当声明的变量未初始化时,该变量的默认值为undefined

运算符

在JS语言中,运算符与Java语言中的运算符基本相同,但比Java语言多了一个"==="全等运算符

  • ==符号会自动进行类型转换
  • ===不会自动进行类型转换
var a = 10;
alert(a == "10"); //true
alert(a === "10"); //flase
alert(a === 10); //true

(6)常用类型转换

  • 字符串类型转数字:将字符串字面值转为数字,如果字面值不是数字,则转为NaN。

  • 其他类型转为boolean:

    • Number:0和Nan为flase,其他为true。转换语句parseInt()
    • String:空字符串为flase,其他为true
    • Null和undefined:均转为flase
//字符串转数字示例
parseInt("12"); //12
parseInt("12A45"); //12 将最前面的数字转换后,不是数字的部分被舍弃
parseInt("A45"); //NaN

(7)函数

  • 函数是被设计为执行特定任务的代码块

函数的定义

//定义方式1
function functionName(参数1,参数2...){
//要执行的代码
} //定义方式2
var add = function(a,b){
return a+b;
}
//调用
var result = add(10,20);
var result2 = add(10,20,30,40); //与上一条调用语句的结果相同,只会传递10,20两个实际参数
  • 形式参数不需要类型,因为JS语言是弱语言类型
  • 返回值不需要定义类型,可以直接return
  • 调用: 函数名(实参列表)
  • 实际传递的参数可以比形参列表多,传递进去的参数会是最前面的几个

(8)对象-Array数组

  • JS中Array对象用于定义数组。

定义

//方式1
var 变量名 = new Array(元素列表);
var arr = new Array(1,2,3,4); //方式2
var 变量名 = [元素列表];
var arr = [1,2,3,4];

调用

arr[索引] = 值;
arr[10] = "hello";
  • Array数组的特点:

    • 长度可变(可以直接追加长度),类型可变(一个数组里面可以存储多种类型的数据)
//长度可变测试
var arr = [1,2,3,4];
arr[10] = 50; console.log(arr[10]); //50
console.log(arr[9]); //undefined //类型可变测试
arr[9] = "A";
arr[8] = true;

Array的属性

  • length:设置或返回数组中元素的数量
int len = arr.length;

方法

  • forEach(函数):遍历数组中的每个有值的元素,并调用一次传入的函数
  • push():将新元素添加到数组的末尾,并返回新的长度
  • splice(索引位置,删除个数):从数组中删除元素。
  • push(e1,e2,e3...):追加元素到数组末尾
//forEach(函数)
arr.forEach(function (e){ //打印遍历元素,e代表"element"元素
console.log(e);
}) //push()函数
arr.push(6,7,8); //追加元素到数组末尾 //splice(索引位置,删除个数)
arr.splice(2,2); //表示从第二个索引开始删除2个元素

(9)JS对象-String字符串

定义

//方式1
var 变量名 = new String("...");
var str = new String("Hello String"); //方式2
var 变量名 = "..."
var str = "Hello String";

属性

  • length
int len = arr.length;

方法

  • charAt(索引):返回在指定位置的字符
  • indexOf(”字符串“):检索字符串
  • trim():去除字符串两边的空格
  • substring(开始索引,结束索引):提取字符串中两个指定的索引号之间的字符

(10)JS对象-JSON

JS自定义对象

定义

var 对象名 = {
属性名1:属性值1,
属性名2:属性值2,
属性名3:属性值3,
函数名称:function(形参列表){}
}; var user = {
name:"Tom",
age:20,
gender:"male",
eat:function(形参列表){
alert("你好");
}
};

调用

//对象名.属性名;
user.name; //对象名.函数名();
user.eat();

JSON

  • JSON中对象的定义与JS语言定义对象格式基本相同,其属性名需要用双引号
  • JSON常用于作为数据载体,在网络中进行数据传输
  • JSON可以理解为一种书写格式
{"name":"Tom","age":20,"gender":"male"}

JSON基础语法

  • 定义
var 变量名 = '{"key1":value1,"key2":value2}'

var userStr = '{"name":"Tom","age":20,"gender":"male"}'
  • JSON的转换

    • 转换1:将JSON字符串转为JS对象
    • 转换2:将JS对象转为JSON字符串
var jsObject = JSON.parse(userStr);  //转换1
alert(jsObject.name); //转换之后才能获取属性值 var jsonStr = JSON.stringify(jsObject); //转换2
alert(jsonStr); //打印字符串

(11)BOM浏览器对象模型

  • BOM是浏览器对象模型,允许JS与浏览器对话,JS将浏览器的各个组成部分封装成为对象

BOM的组成:

  • Winodw:浏览器窗口对象

  • Navigator:浏览器对象(应用名称,版本,内核)

  • Screen:屏幕对象

  • History:历史记录对象

  • Location:地址栏对象

Window对象方法

//alert():显示一段消息和带一个确认按钮的警告框
window.alert("Hello"); //可以省略window
alert("Hello"); //可以省略window //confirm():显示一段消息和带一个确认按钮和取消按钮的警告框。带有一个返回值(确认为true,反之flase)
confirm("您确认删除该记录吗?");
var flag = confirm("您确认删除该记录吗?"); //保存返回值 //setInterval(函数,周期时间(单位ms)):周期性地执行传入的函数
setInterval(function(){
console.log("执行定时器")
},2000) //setTimeout(函数,延迟时间(ms)) --- 延迟指定时间执行一次
setTimeout(function(){
alert("执行定时器")
},2000)

Location对象

  • 地址栏对象
  • 获取:window.location获取,其中window.可以省略
//对象的获取
window.location.属性;
location.属性; //location的属性
//href:设置或返回完整的URL
alert(location.href); //打印该网页网址
location.href="https://www.itcast.cn" //跳转到指定域名

(12)DOM对象

DOM是文档对象模型

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

  • Document:整个文档对象
  • Element:元素对象
  • Attribute:属性对象
  • Text:文本对象
  • Comment:注释对象

DOM获取元素对象的函数

//1.根据id属性值获取,返回单个Element对象
var h1 = document.getElementByID('h1'); //2.根据标签名获取,返回Element对象数组
var divs = document.getElementsByTagName('div'); //3.根据name属性值获取,返回Element对象数组
var hobbys = document.getElementsByName('hobby'); //4.根据class属性值获取,返回Element对象数组
var class = document.getElementsByClassName('cls');

DOM的使用

  • 以下展示常用的函数,更多用法参考手册
//1.获取div的DOM对象
var divs = document.getElementsByTagName('div'); //2.选择要修改的对象
var div1 = divs[0]; //选择第一个div的内容 //3.innerHTML修改div值
div1.innerHTML = "WY"; //修改文本内容

(13)事件监听

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

    • 按钮被点击
    • 鼠标移动到元素上
    • 按下键盘按键
  • 事件监听:JS可以在事件被侦测到时执行代码

事件绑定的两种方式

  • 方式1:通过HTML标签中的事件属性进行绑定
<input type="button" onclick="on()" value="按钮1" >

<script>
function on(){
alert('已点击');
}
</script>
  • 方式2:通过DOM元素属性绑定
<input type="button" id="btn" value="按钮2" >

<script>
document.getElementById('btn').onclick=function on(){
alert('已点击');
}
</script>

常见元素事件

JavaWeb-JS基础的更多相关文章

  1. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

  2. js 基础

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  3. js基础练习二之简易日历

    今天学到了js基础教程3,昨天的课后练习还没来的及做,这个是类似简易日历的小案例,视频还没听完,今晚继续...... 先看效果图: 其实做过前面的Tab选项卡,这个就很好理解了,通过鼠标放在不同月份月 ...

  4. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  5. JS基础(超级简单)

    1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)       ...

  6. Node.js基础与实战

    Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...

  7. js基础到精通全面教程--JS教程

    适合阅读范围:对JavaScript一无所知-离精通只差一步之遥的人 基础知识:HTML JavaScript就这么回事1:基础知识 1 创建脚本块 1: <script language=”J ...

  8. JS基础知识总结

      js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划() ...

  9. JavaWeb:JavaBean基础

    JavaBean基础 JavaBean简介: 1.JavaBean是一种可以重复使用的类,可以没有用户界面,主要负责业务数据或者处理事物(数据运算.操作数据库) 2.与JSP配合,可以简化JSP代码. ...

  10. js基础篇——call/apply、arguments、undefined/null

    a.call和apply方法详解 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象 ...

随机推荐

  1. windows和linux键值表

    windows系统下对应键值 {8,KEY_BACKSPACE}, {9,KEY_TAB}, {13,KEY_ENTER}, {16,KEY_LEFTSHIFT}, {17,KEY_LEFTCTRL} ...

  2. Kurator,你的分布式云原生解决方案

    本文分享自华为云社区<DTSE Tech Talk | 第40期:Kurator,你的分布式云原生解决方案>,作者:华为云社区精选. 什么是分布式云原生? 中国信通院给出的定义:分布式云原 ...

  3. HarmonyOS扫码服务,应用服务一扫直达打造系统级流量新入口

    二维码如今是移动应用流量入口以及功能实现的重要工具,也是各App的流量入口,是物.人.服务的连接器,通过扫码我们可以更便捷的生活,更高效的进行信息交互,包括信息的发布.信息的获取. 在日常扫码过程中, ...

  4. PHP调用API接口的方法及实现

    随着互联网.云计算和大数据时代的到来,越来越多的应用程序需要调用第三方的API接口来获取数据,实现数据互通和协同工作.PHP作为一种常用的服务器端语言,也可以通过调用API接口来实现不同系统的数据交互 ...

  5. 文心一言 VS 讯飞星火 VS chatgpt (87)-- 算法导论8.2 4题

    四.用go语言,设计一个算法,它能够对于任何给定的介于0到 k 之间的 n 个整数先进行预处理,然后在 O(1)时间内回答输入的 n个整数中有多少个落在区间[a..b]内.你设计的算法的预处理时间应为 ...

  6. RocketMQ 系列(四) 消息存储

    RocketMQ 系列(四) 消息存储 本文是 RocketMQ 系列的第四篇,下面是前面几篇的文章,不清楚的话点击看一下吧. RocketMQ系列(一) 基本介绍 RocketMQ 系列(二) 环境 ...

  7. Http协议之libcurl实现

    一.libcurl简介 libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcurl同样支持 ...

  8. 深入解析枚举(Enum):在程序设计中的应用与优势

    深入解析枚举(Enum):在程序设计中的应用与优势 引言 在程序设计中,我们经常需要用到一组具名的常量,这些常量表示一些有限的离散状态或取值范围.例如,表示方向(上.下.左.右).星期几.性别等.为了 ...

  9. 如何配置.h头文件include“”相对路径

    编译工程时,找的是当前main.c文件下的.h文件,如果当前路径下没有就会报错,当前路径用.\表示,上一级目录用..\表示. 如果你的main.h文件在main.c的上一级目录中Include 文件夹 ...

  10. gitbook在线记事本

    https://app.gitbook.com/ About this template: An Internal Wiki to lay out everything anyone needs to ...