一、js的使用方式
方式一:js的内部方式
<script></script>
方式二:js的外部方式(实际开发中使用)
需要在js文件夹中单独创建一个后缀为.js的文件
书写js代码,在当前html页面中将js文件导入即可!
<script src="文件名.js"></script>
二、js的数据类型
1.定义变量的注意事项
1)在js中定义变量,使用var来定义,var可以省略不写;
2)JavaScript是弱类型语言,它的语法结构不严谨!可以重复定义变量,后面的变量值将前面的变量值覆盖掉。
3)查看js的变量数据类型,typeof(变量名);
4)var可以任意数据类型;
2.js的基本数据类型
1)无论是整数还是小数,都是number类型, ---- js引擎会自动提升为 Number 对象类型
2) 无论是字符串还是字符,都是string类型----js引擎会自动提升为 String 对象类型
3)boolean类型 ----js引擎会自动提升为 Boolean 对象类型
4)object类型 (创建一个对象 ) ---- js引擎会自动提升为Object对象类型
在Js中,Object对象代表所有js对象的模板!
5)undefined类型 :未定义类型 (这种没有意义),因为没有赋值!
三、js运算符
true,false在运算的时候都自己默认值 true是1,false是0;(此处与java不同)
四、js的流程控制语句
与java不同之处
if语句:
1.if语句中,如果if里面是一个非0整数,条件是成立的;
2.如果是非空字符串,条件成立;
3.如果是非null对象,条件成立;
Switch语句:
js的case后面可以设置变量,而Java中只能为常量。
五、js事件编程
1.js事件编程的三要素
1)事件源——就是html标签的单击,双击。。。
2)编写事件监听器——就是编写一个函数 function 函数名(){}
3)绑定事件监听器——就是在事件源上加上onxxx属性 = “函数名称()”。
2.dom操作:
1)通过特别的方式获取标签对象 最常用的 document.getElementById("id属性值");(获取的是标签对象)
2)使用标签对象获取或改变标签的属性值;
3.js事件三要素位置分析;
1)事件源——位于body中的标签中;
2)编写事件监听器——一个位于script中的函数;
3)绑定事件监听器——事件源上加上onxxx属性 = “函数名称()”;
六、for-in
1、应用场景
1)遍历数组 2)遍历对象的属性(js自定义对象的4种方式)
2、js中如何创建一个数组?
方式一:var 数组对象 = new array();
方式二:var 数组对象 = new array(长度);
方式三:静态初始化 var 数组对象名称= [元素1,元素2,元素3,.....] ;
3、js的数组可以存储任意数据类型,但实际开发中,还是遵循数据类型一致。
var arr = [10,20,30,"hello",'A',true,3.14] ;
4、for-in语句的格式
for(var 变量名 in 数组或者对象名称){
使用变量名;
}
for(var i in arr){
document.write(arr[i]+" ") ;
}
七、js中的函数定义以及调用
定义函数的格式一:
function 函数名称(参数名称1,参数名称2...){
函数的业务逻辑
直接输出document.write(“xxx”);
}
格式一调用:
单独调用;
函数名称(实际参数列表);
定义函数的格式二:
function 函数名称(参数名称1,参数名称2...){
函数的业务逻辑
return 结果;
}
格式二调用:
赋值调用;
var 最终结果变量 = 函数名称(实际参数列表);
1、定义函数的注意事项:
1)js是弱类型语言,定义函数的时候,参数名称不能携带var;
2)js定义的时候,没有返回值类型,但是后面可以带return语句,代表方法结束;
3)js中没有重载的概念,如果方法名相同,后面定义的函数将前面定义的函数覆盖
(且无论引用方法的是在最后函数的前面还是后面,只确定是不是最后一个)
4)实际参数列表 < 形式参数列表,函数依然会被调用:
1.一个形式参数没有赋值且没有应用时,正常返回;
2一个形式参数没有赋值且应用在运算中时,值是"NaN";
3. 一个形式参数没有赋值且应用在赋值中时,值是"undefined";
实际参数列表 > 形式参数列:
将实际参数的值赋值给形式参数,多余的实际参数,直接省略不计!
5)隐藏一个数组名称:arguments; 作用:将实际参数绑定给形式参数。
八、js的内置对象Date
1、Js内置对象:
Date日期,String字符串,Array数组,正则表达式对象。。。
浏览器在解析javascript的时候,能够识别这个对象,使用里面的方法!
2、日期对象的基本使用:
var date = new Date();
document.write(date);
//输出为Mon May 09 2022 16:40:31 GMT+0800 (中国标准时间) 原生Date格式
日期对象 .getFullyear():获取年份; 日期对象.getMouth()+1:获取月份;
日期对象 .getDate():获取日期; 日期对象.getHours():获取小时;
日期对象 .getMinutes():获取分钟; 日期对象.getSeconds():获取秒;
面试题:innerText和innerHTML属性有什么区别?
相同点:
任何对象都有innerText和innerHTML这两个标签。这两个属性代表设置标签的文本内容。
不同点:
innerHTML中可以加入html标签,能够被解析(推荐);
innerText只是普通的文本内容,不能够解析html标签,如果加入html标签就会原封不动的解析成普通文本!
原来文本的内容不显示了。
九、网页时钟
1、获取当前系统时间
1.1)创建日期对象
1.2)拼接出来时间字符串
2、dom(文档对象模型编程)操作:
2.1)获取id="spanTip" 所在的span标签对象
2.2)设置span标签的文本内容
3、开启网页定时器
setInterval("定时任务()",时间毫秒值):每经过时间毫秒值重复执行这个定时任务..
setTimeout("定时任务()",时间毫秒值):经过这个毫秒值之后,执行一次定时任务..
var dateStr = date.getFullyear()+"-"+(date.getMonth()+1)+"-"+date.getDate()
+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds() ;
<html>
<head>
<meta charset="utf-8">
<title>10_网页时钟</title>
</head>
<body>
<h3>当前系统时间是:</h3>
<span id="spanTip"></span>
</body>
<script>
function generateDate(){
var date = new Date() ;
var dateStr = date.getFullYear()+"-"+(date.getMonth()+1)+"-"
+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+":"+
date.getSeconds() ;
var span = document.getElementById("spanTip") ;
span.innerHTML ="<h3>"+dateStr+"</h3>" ;
}
generateDate();
// setTimeout("generateDate()",0.5);//0.5秒后只执行一次
setInterval("generateDate()",1000) ; //每1秒重复执行生成时间的任务
</script>
</html>
其他知识
一、 Windows.alert("文字信息"); 中Windows为最高级可省略.
二、 var创建任意一个对象的引用.
三、 JavaScript中<script>如果放在了<body>前面,则会先执<script>里面的内容.
四、 警告框:alert()方法是阻塞的函数,<script>如果放在了<body>前面,在确认弹出框的提示文本后才会显示<body>内容.
确认框:confirm()方法是显示一个含有指定消息和确认和取消按钮的确认框。如果点击"确定"返回true,否则返回false。
提示框:prompt()方法是显示提示用户进行输入的对话框。这个方法返回的是用户输入的字符串。