Java script
Java script
Java scirpt是一门脚本语言
作用:主要用来给HTML网页增加动态功能
- 通常的js,是运行在浏览器环境下的
- js的两种模型:
- DOM:文档对象模型 。 操作对象:document
- BOM:浏览器对象模型 。 操作对象:window
- node.js运行在计算机环境下,服务器技术。不能操作BOM和DOM。但是它可以操作文件,数据库。
实际上是一门后端技术。
JS解释器(不同的浏览器,js的解释器不一样,但是揭示出来的效果是一样的):
浏览器 | 解释器 |
---|---|
Chrome | v8 |
Sarfari | AjavaScriptCore |
node | v8 |
补充内容:
名字 | |
---|---|
ECMAS cript(es) | 是一套规范,js的语法 |
Java scirpt() | es具体的实现 |
Java script的编写:
- 建议编写位置在body标签的最后(body结束标签的上面),为了等到页面上所有东西都加载完毕后,再加载出来
- 建议使用外部引入
Java sript的数据类型
名称 | 英文 |
---|---|
数字 | number |
字符串 | string |
布尔型 | boolean |
“上述三个可以自动类型推断,是弱类型” | |
空 | null |
未定义 | undefined |
非数字 | NaN(Not a Number) |
变量的声明
var/let v1 = 10;
var/let v2 = '你好'(单引号,双引号都可以)
var/let v3 = true
var/let v4 = null
es6声明变量语法:
我们可能会遇到下面问题
var num = 1;
var num = 2;
documrnt.write(num)
结果得到了2,相当于2把1覆盖掉了,非常危险,可能从外部引入了许多js,结果相同变量只能读一个值
解决办法(使用es6语法中,新的关键字):
let num = 1;
let num = 2;
document.writeln(num)
结果会报错
常量的定义:
const num = 1;
数组的声明:
let v1 =[1,2,3,4,5]
定义一个空数组:m
let arr = Array();
js中的数组没有下标越界
在js中,没有“方法”,Java中的方法,在这里叫做函数
在js中,函数可以当作类来使用
如下:
let arr = new Array()
可以将js中的数组,理解为Java中的集合
js的函数(也就是Java里的方法)
函数定义:
function 方法名 (){
}
函数调用:
方法名()
函数返回值:
关键字reuturn:
return可以终止函数的运行
js的函数,不可以“方法重载”“方法重写”
js的函数如果需要参数但没有传,不会报错,会输出NaN
js的对象:
对象的声明
let v8 = {
"username":"admin",
"password":"123456",
"id":1001
}
document .write(v8.username)获取对象属性的值
使用Object返回一个空对象:
let obj = new Object();
使用函数来定义一个类:
function User(name){
this.name =name
}
根据上面的类来创建一个对象
let user = {
"name" = "张三"
}
js对象的方法
let obj = Object();
对象的属性
obj.name="张三";
obj.age =20;
对象的方法
obj.eat = function() {
console.log("我在吃东西")
}
第二种方法
let teacher = {
name:xxx
age:
drink:function(){
console.log("我在喝酒")
}
}
js里的判断和循环:
let a = 1;
if(a = 2){
console,log("哈哈哈");
}
-
上述这个例子中,if(a = 2)其实不是一个判断,而是一个赋值语句。
if中的"哈哈哈"一定会出来。a的值是2 -
在js中的判断中,0是false;null是false;undefine是false。
其他的都是true
js中没有增强for循环:
普通for循环
let arr = [1,2,3,4,5];
for(let i = 0;i<arr.length;i++){
console.log(arr[i])
}
for in 语句
for(i in arr){
console.log(arr[i])
}
遍历对象:
let student = {
name :"小明",
age:18
}
只能使用for in语句来遍历对象
for (i in student){
i(拿到属性)
student.i/student[i](拿到值,建议使用后者)
}
js对于HTMl标签的操作:
DOM(Document Object Model)编程:
- 整个body对象document
- 所有的HTMl元素都是元素节点
- 所有的HTML属性都是属性节点
- 元素的文本都是文本节点
- 注释节点
获取元素节点:
// 根据id(获取唯一一个元素节点)
let div = document.getElementById(id名)
// 根据标签名(获得多个,想要拿一个需要用下标)
let div1 = document.getElementsByTagName("标签名")
// 根据class样式(获得多个,想要拿一个需要用下标)
let div2 = document.getElementsByClassName("样式名")
新方式:
// 找到个传入和传入的选则器匹配的第一个元素,返回值是一个元素节点
document.querySelector("(选择器)");
//找到和选择器匹配的所有元素
let divs = document.querySelector("选择器");
document.write(divs[0])
新建一个元素节点:
let xxx = document.createElement("xxx");
删除一个节点
remove()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效