当前位置: 首页 > news >正文

【前端教程】JavaScript 基础总结

JavaScript 的三种使用方式

  1. 内部引入(常用)
  2. 外部引入(一个 js 文件可以被多个页面共同使用)
  3. 行内(少用)

区别

  • 内部引入只能够使用单页面
  • 外部引入可以应用到多个页面
  • 行内是直接在 HTML 标签内写(少用)

JavaScript 执行顺序

HTML 代码是按照从上到下进行解释的。如果 JS 获取到网页中还没有进行解释的内容,就会出现 JS DOM 堵塞。

解决 JS 堵塞的方式有两种

  1. 将 JS 代码写在网页的最下面
  2. 使用 window.onload(网页加载完毕执行)

JS 错误处理

  • JS 代码一旦发生错误,错误后的代码将不会执行
  • 但不会影响发生错误前的代码执行

常用输出方法

alert("111"); // 警告框
prompt("请输入你的名称", "王菲"); // 提示对话框
console.log(value); // 用来进行调试,只能够在浏览器中进行调试
document.write("内容可以是普通文字和html代码,css样式");

调试方法

  1. 使用 alert() 去打印变量的值进行缩小范围调试
  2. 在浏览器中点击 F12 看错误信息

变量与数据类型

  • JS 中变量都是弱类型的,不管声明什么数据类型都使用 var 进行声明
  • 使用 typeof 关键字可以查看变量类型

强类型 vs 弱类型

  • 声明的类型确定死就是强类型
  • 声明的类型不确定就是弱类型

特殊值

  • 如果运算结果不是数字,也不是字符串,就得到 NaN(不是数字)

JS 中的 6 种数据类型

  1. number:所有的数字都属于 number,不管小数还是整数
  2. booleantruefalse
  3. string:可以使用 ""'' 进行声明,但不要混着用
  4. null:代表空
  5. undefined:声明了变量未赋值的空
  6. Object:所有引用数据类型的统称,包含元素节点,其他类型

浏览器选择

推荐使用谷歌(调试方便)或火狐浏览器(调试提示是中文的)

函数(方法)

函数是将具有特定功能的代码块封装为一个函数。JS 的函数分为系统函数和自定义函数。

自定义函数

定义函数语法
function 函数名(参数列表) {
// 函数体
}

调用时直接使用函数名。

函数表达式语法
var 变量名 = function(参数列表) {
// 函数体
}

调用时使用变量名。

注意

  • 不管有没有声明返回值,都可以返回,也可以不返回
  • 不管定义没有定义参数,都可以传参,也可以不传参

类型转换

Number(参数); // 转为数字类型
Boolean(参数); // 转为 Boolean 类型
需要转型的内容.toString(); // 转为字符串类型

参数

  • 形参:只是声明,没有具体的值,值需要通过调用时传入
  • 实参:具体传入的内容

实用函数

isNaN(内容); // 判断是不是非数值
arguments; // 参数过多时获取参数列表(返回数组形式)

数组

JS 中的数组创建使用 [],下标从 0 开始。由于 JS 是弱类型语言,数组可以放入任何类型。

创建数组的三种方式

  1. 隐式方式创建数组
var b = ['11', 22, '你好', ['大家好', 11]];
  1. 使用构造函数创建数组
var b = new Array('你好', 11, '快开学啦!');
  1. 使用下标索引给数组赋值
var v = new Array(2); // 数组的默认长度为2
v[0] = '你好很好';
v[1] = 11;
v[2] = '快开学啦';

数组遍历

  1. for 循环
for(var i = 0; i < v.length; i++) {
document.write(v[i] + "<br>");
}
  1. for…in
for(var i in v) {
document.write(i + "<br>");
}
  1. for…of
for(var i of v) {
document.write(i + "<br>");
}

二维数组

var v = [["张三","李四"], ["王五","马六"], ["秦叔宝","尉迟恭"]];// 遍历二维数组
for(var i of erwei) {
for(var j of i) {
document.write(j + "<br>");
}
}

对象

创建对象的两种方式

  1. 直接创建
var v = {'bianhao':1, 'name':'香蕉', 'price':3, 'num':3};
  1. 使用 new 创建
var v1 = new Object();
v1.bianhao = 2;
v1.name = '橘子';
v1.price = 4;
v1.num = 2;

对象方法

v1.gongneng = function() {
alert(内容);
}

访问对象属性和方法

对象名称['属性的键'] 或 对象名称.属性的键

修改对象属性

v["name"] = "王五"; 或 v.name = "王五";

删除对象属性

delete 对象的属性名;

遍历对象

for(var i in a) {
document.write(a[i]);
}

构造函数

JS 的构造函数和普通函数创建类似,主要的区别在于 JS 构造方法用于创建对象。

Math 对象

Math.abs(e); // 取 e 的绝对值
Math.ceil(e); // 向上取整
Math.floor(e); // 向下取整
Math.PI; // 圆周率
Math.pow(a, b); // 得到 a 的 b 次方
Math.sqrt(e); // 得到 e 的平方根
Math.random(); // 得到 0-1 之间的随机数

Date 对象

创建 Date 对象

var dt = new Date(); // 当前时间
var dt1 = new Date("1999-11-11"); // 指定时间
var dt2 = new Date("2003/08/22"); // 指定时间
var dt3 = new Date(2008, 7, 11); // 月份需要+1
var dt4 = Date.now(); // 当前时间的毫秒数

常用方法

getYear(); // 得到年份(需要加1900)
getFullYear(); // 直接得到年份
getMonth(); // 月份(记得+1)
getDate(); // 获取日
getDay(); // 周几(0-6,0代表周日)
getHours(); // 小时
getMinutes(); // 分钟
getSeconds(); // 秒
toDateString(); // 英文格式的日期
toLocalString(); // 数字格式的日期
toTimeString(); // 只有时间,没有年月日
valueOf(); // 将时间转为毫秒数
new Date(毫秒); // 将毫秒数转为时间

三目表达式

xiaoshi > 12 ? panduan = "下午" : panduan = "上午";
var month1 = month > 10 ? (month + 1) : "0" + (month + 1);

定时器

setInterval(code, millisec); // 周期性执行
clearInterval(); // 清除 setInterval
setTimeout(); // 只执行一次

String 对象

声明方式

  1. 直接声明
var str = "123"; // string 类型
  1. 构造器声明
var str1 = new String("你好"); // 引用类型

字符串特性

字符串具有不可变性:可以通过下标访问,但不能通过下标修改。

常用方法

length; // 字符串长度
charAt(a); // 下标为 a 的字符
concat(a, b, c...); // 连接字符串
indexOf(a); // 返回 a 的第一个位置(未找到返回-1)
lastIndexOf(a); // 从后往前找 a 的位置(未找到返回-1)
replace(a, b); // 用 b 替换 a
slice(a, b); // 截取 a 到 b 的位置
split("a"); // 以 "a" 分割字符串
substr(a, b); // 从 a 截取 b 个字符

事件

onclick; // 点击事件
onmouseover; // 鼠标移入
onmouseout; // 鼠标移出
onfocus(); // 获取焦点
onselect(); // 选中文本内容
onblur(); // 失去焦点
onchange(); // 内容改变
onload(); // 网页加载完毕
onunload(); // 网页刷新或关闭
(); // 网页刷新或关闭
onkeyup(); // 键盘松开

事件绑定方式

  1. 直接在元素上写属性事件
<input type="button" value="计算结果" onclick="sure()" id="btn1" />
  1. 使用 JS 代码动态赋值事件
var btn1 = document.getElementById("btn1");
btn1.onclick = function() {
alert("123");
}
http://www.dtcms.com/a/355681.html

相关文章:

  • 教育类《河北教育》杂志简介
  • Day03_苍穹外卖——公共字段自动填充菜品相关功能
  • 河南萌新联赛2025第(七)场:郑州轻工业大学
  • 【数据结构与算法】(LeetCode)141.环形链表 142.环形链表Ⅱ
  • 数据分析学习笔记4:加州房价预测
  • 国产的服务器
  • 如何监控PCIe 5.0 SSD的运行温度?多软件推荐
  • 中国剩余定理(以及扩展..)
  • 用 Docker 玩转 Kafka 4.0镜像选型、快速起步、配置持久化与常见坑
  • 影楼精修-锁骨增强算法
  • 深入理解 PHP 中的 `pcntl_fork()`:父进程与子进程的执行路径
  • SRE网易一面面经
  • Linux笔记12——shell编程基础-6
  • 少样本图异常检测系列【A Survey of Few-Shot Graph Anomaly Detection】
  • Python实战:银行ATM系统开发全解析
  • RuoYi-VuePlus:前端指定接口不显示错误提示
  • 面试tips--JVM(2)--对象创建的过程
  • ERNIE-4.5-VL:技术解密+应用实战,解锁多模态新场景!
  • 8.29 贪心|摩尔投票
  • 【不说废话】pytorch中.to(device)函数详解
  • 基于K8s部署服务:dev、uat、prod环境的核心差异解析
  • 工业级TF卡NAND+北京君正+Rk瑞芯微的应用
  • openEuler Embedded 的 Yocto入门 : 5.基本变量与基本任务详解
  • Linux 系统 poll 与 epoll 机制1:实现原理与应用实践
  • DINOv2 vs DINOv3 vs CLIP:自监督视觉模型的演进与可视化对比
  • 传统set+new写法与Builder写法的区别
  • LightRAG
  • 客户案例 | 柳钢集团×甄知科技,燕千云ITSM打造智能服务新生态
  • 第1.9节:神经网络与深度学习基础
  • 基于matplotlib库的python可视化:以北京市各区降雨量为例