JavaScript

javaScript:控制页面中的元素,让页面有动态的效果,用户可以和浏览器进行交互。

运行在客户端浏览器中的一门客户端脚本语言,每一个浏览器都有JavaScript的解析引擎。不需要编译,直接就可以被浏览器解析执行了

1.1 JS和HTML结合方式

1.1.1 内嵌脚本

  <!--将js代码内嵌到html标签中-->
  <input type="button" value="点击我吧" onclick="alert('儿童节快乐')">

1.1.2 内部脚本

定义script标签,标签中的内容就是js代码.
注意:script标签可以定义html文件中的任意位置。
     在不影响功能的前提下,越晚出现越好。【一般写在最后】
     在html文件中可以定义多个 script标签。
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    </body>
</html>

<!--内部脚本-->
<script>
    alert("0.o");
</script>

image

1.1.3 外部脚本

定义script标签,通过src属性引入外部的js文件
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    </body>
</html>
<!--引入外部脚本-->
<script src="a.js"></script>

a.js文件:

alert("两个黄鹂鸣翠柳");

1.2 JavaScript基础语法

1.2.1 注释

1.单行注释: //注释的内容

2.多行注释: /* 注释的内容  */
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>
<script>
    //alert是一个弹框的方法 包含了一个确认按钮
    alert("锄禾日当午");
    /*
    用于向html页面中输出内容的,()中的内容就是输出到页面中的内容
    document其实是一个dom对象,是通过window对象来获取的,window对象这里省略了
    */
    document.write("你好");
</script>

image

1.2.2 数据类型

1.原始数据类型
	number:数值类型,整数 小数。 NaN(not a number)不是一个数字
	string:字符串  "doyens"  '德源'   双引号和单引号都可以。
	boolean:布尔  true  false
	null:一个对象为null的占位符。
	undefined:未定义。如果一个变量没有初始值,则默认赋值为undefined.
2.引用数据类型:对象
	函数:Function
	数组:Array
	日期:Date
	数学:Math
	正则:RegExp
	全局:Global
	
#java中的数据类型
1.基本数据类型
	整型:byte short int long 
	浮点型:float  double 
	字符型:char
	布尔型:boolean
2.引用数据类型:对象
   类   接口  数值。

1.2.3 变量

java是强类型的语言
	强类型:在开辟变量存储空间时,定义了该空间存储的数据类型
js是弱类型的语言
    弱类型:在开辟变量存储空间时,不定义空间存储的数据类型,可以存储任意类型

js定义格式

1.var 变量名 = 初始值;  局部变量
2.变量名 = 初始值;      全局变量

1.2.4 类型转换

1.2.4.1 其他的数据类型转成number

1.string--number
按照字符串的字面值转换。如果不是一个数字,则转换的结果是NaN.
var a = "5";
a++;   ---->a = 6 ;ok

var a = "我";
a++; "我"不是一个数字,那就转成NaN, NaN++就得到的结果还是一个NaN.

2.boolean---number
  true--->1
  false-->0

1.2.4.2 其他类型转成boolean类型

1.string转boolean:除了空字符串,其他的都转成true.
2.number转boolean:0和NaN转成false,其他的转成true.
3.null,undefined转boolean:都是转成false
4.对象转boolean。都是转成true

1.2.5 流程控制语句

1.2.5.1 if...else语句

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>
<script>
    var a = -5;
    if (a > 0){
        alert("yes")
    }else{
        alert("no");
    }
</script>

1.2.5.2 switch语句

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>
<script>
    var a = 8;
    switch (a) {
        case 1:
            alert("星期一");
            break;
        case 2:
            alert("星期二");
            break;
        case 3:
            alert("星期三");
            break;
        case 4:
            alert("星期四");
            break;
        default:
            alert("没有对应的数据")
    }
</script>

1.2.5.3 循环语句

  1. while
  2. do...while
  3. for
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>
<script>
    /*while循环 输出1~10*/
    var a  = 1;
    while(a <= 10){
        document.write(a + "<br/>")
        a++;
    }

    /*do...while循环输出1~10*/
   var a = 1;
    do {
        document.write(a + "<br/>")
        a++;
    }while(a <= 10)
    
   /*for循环输出1~10*/
    for (var i = 1; i <=10 ; i++) {
        document.write(i +"<br>")
    }
</script>

1.2.6 引用数据类型

Function:函数对象【函数本身也是一个对象】
Array:数组对象
Boolean:boolean的包装对象
Date:日期对象
Math:数学对象
Number:number包装对象
String:string包装对象

如何学习js中的对象
	1.如何创建对象
	2.对象有哪些方法
	3.对象有哪些属性
	4.对象的特点

1.2.6.1 函数对象

1.2.6.1.1 创建Function函数对象

特点:定义函数时,参数不用声明数据类型,连var也不用

格式:function 方法名(形参列表){
		方法体;
	}

    function add(a, b) {
        var sum = a + b;
        alert("sum =" +sum)
    }
    add(4,6);
    add(2,6);
1.2.6.1.2 Function对象的属性
length:获取 方法种参数的个数
function add(a, b, c) {
        var sum = a + b;
        alert("sum =" +sum)
    }
//length属性:获取add方法的参数的个数
alert(add.length); //3

1.2.6.2 数组对象

1.2.6.2.1 创建数组对象
1.var 数组名=new  Array(元素列表); 
	例: var arr1 = new Array(1,8,6);
2.var 数组名=new  Array(默认长度);
	例:var arr2 = new Array(3);	 数组中的元素默认都是undefined
3.var 数组名=[元素列表];
	例:var arr3 = [5,"西瓜",true];
1.2.6.2.2数组中的方法
1.join(参数):将数组中的元素按照指定的符号拼接成字符串。
	var arr1 = new Array(1,8,6);
	var s = arr1.join("-");
	s--->"1-8-6"
2.push();向数组的末尾添加一个或更多元素,并返回新的长度。
1.2.6.2.3 数组中的属性

length:数组中元素的个数

1.2.6.2.4 数组的特点
java中数组的特点
	1.长度是固定的。
	2.只能存储同一种数据类型。
	
js中数组的特点
	1.长度是可变的。
	2.可以存储不同的数据类型。

1.2.6.3 Date日期对象

1.2.6.3.1 如何创建对象
var d = new Date(); //当前日期和时间封装为日期对象
var d = new Date(milliseconds); //毫秒值转成日期对象
var d = new Date(dateString);//字符串转成日期对象
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds); //创建日期对象 
1.2.6.3.2 Date对象的方法
1.toLocaleDateString:将日期对象转成字符串 格式:2022/5/23
2.toLocaleString(); 将日期对象转成字符串 格式:2022/5/23 15:47:25
3.getTime();获取日期对象的毫秒值
4.获取年:getFullYear()
5.获取月:getMonth(); 注意:对于中国来说 需要手动+1.
6.获取日:getDate() 

1.2.6.4 Math对象

Math 对象用于执行数学任务。

1.2.6.4.1 创建Math对象

不需要创建对象,直接使用,使用:Math.方法名(参数);

1.2.6.4.2 Math对象的方法
1.floor(a):向下取整
2.ceil(a):向上取整
3.round(a):四舍五入
4.random():产生[0,1)之间的随机数

总结出随机数的万能公式[min,max]
var sj = (Math.floor(Math.random() * (max - min + 1))) + min;

1.3 JavaScript存储方案

​ sessionStorage 是浏览器提供的本地存储机制,具有以下特点:

  • 数据仅在当前会话(浏览器标签页 / 窗口)中有效
  • 存储容量一般为 5MB 左右
  • 数据以键值对形式存储,且仅在同源窗口中共享

1.3.1 sessionStorage 基础操作

sessionStorage 提供了简单的 API 用于数据存储和获取:

// 存储数据
sessionStorage.setItem('key', 'value'); // 存储字符串
sessionStorage.setItem('user', JSON.stringify({ name: 'John', age: 30 })); // 存储对象

// 获取数据
const value = sessionStorage.getItem('key');
const user = JSON.parse(sessionStorage.getItem('user') || '{}');

// 删除数据
sessionStorage.removeItem('key');

// 清除所有数据
sessionStorage.clear();

// 获取存储的键名
const key = sessionStorage.key(0); // 获取索引为0的键名

1.3.2 注意事项与限制

  1. 数据类型限制
    • sessionStorage 仅支持存储字符串,对象 / 数组需通过 JSON.stringify() 转换
    • 大数据存储可能导致性能问题(建议单个数据不超过 1MB)
  2. 浏览器兼容性
    • 主流浏览器均支持,但 IE8 及以下版本不支持
    • 可通过 window.sessionStorage !== undefined 检测支持性
  3. 安全考虑
    • 存储的数据可被同一域名下的所有页面访问,敏感数据建议加密
    • 不适合存储密码等高度敏感信息
  4. 隐私模式
    • 在浏览器隐私模式(如 Chrome 的 incognito 模式)下,sessionStorage 可能不可用
posted @ 2025-08-01 18:09  汣姒  阅读(11)  评论(0)    收藏  举报