JavaScript基础
1. JavaScript概述
html 用于页面的搭建, css 用于页面的美化 javascript 用于页面的交互
特点 | java | javascript |
---|
面线对象 | 完全面向对象的语言:继承,封装,多态 | 基于对象的语言,不完全符合面向对象额的思想 |
运行方式 | 编译型,运行过程需要生成字节码文件 | 解释型语言,不会生成中间文件,解释一定行数,再执行 |
跨平台 | 安装jvm就可以运行在不同的操作系统中 | 只要有浏览器的地方就可以运行 |
大小写 | 区分大小写 | 区分大小写 |
数据类型 | 强类型语言,不用的数据类型有严格的区分 | 弱类型语言,不用类型的数据可以直接赋值给同一个变量 |
JavaScript的语法组成
组成部分 | 作用 |
---|
ECMAScript | 构成了js核心的语法基础 |
BOM | Browser Object Model 浏览器对象模型,用来操作浏览器上的对象 |
DOM | Document Object Model 文档对象模型,用来操作网页中的元素 |
2. JavaScript基础语法
2.1 html与js结合
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>01_html与js结合方式</title>
<script type="text/javascript">
document.write('<h3>你好,传智播客</h3>');
</script>
<script src="../js/myjs.js">
document.write('<h3>我不会被加载</h3>');
</script>
</head>
<body>
</body>
<script>
document.write('<h3>我是在body下方的输入的内容</h3>');
</script>
</html>
2.2 js变量的定义
<script type="text/javascript">
var i = 521;
var d = 521.1314;
var c = 'c';
var str = "隔壁泰山";
b = true;
</script>
2.3 js数据类型
- 原始数据类型
number:数值类型(整型和浮点型)
string:字符串型(字符和字符串)
boolean:布尔型
null:空值 例如:var a = null; 引用数据类型的占位符
undefined:未定义 例如 var a; - 引用数据类型
创建一个上帝对象
var obj = new Object();
创建一个日期对象
var date = new Date(); - typeof操作符
<script type="text/javascript">
var i = 521;
console.log("整型:" + typeof i);
var d = 521.1314;
console.log("浮点型:" + typeof d);
var c = 'ccc';
console.log("字符:" + typeof c);
var str = "用心做教育";
console.log("字符串:" + typeof str);
b = true;
console.log("布尔型:" + typeof(b));
var n = null;
console.log("空值:" + typeof(n));
var u;
console.log("未定义:" + typeof(u));
u = new Date();
console.log("引用数据类型:" + typeof(u));
</script>
2.4 js运算符号
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 三目(三元)运算符
<script type="text/javascript">
var a = 10.00;
var b = '3';
console.log(a + b);
console.log(a - b);
console.log(a * b);
console.log(a / b);
var c = '10.00';
console.log(a == c);
console.log(a === c);
console.log(a != c);
console.log(a !== c);
</script>
2.5 流程控制语句
- if判断
if(条件表达式){
// 执行代码
}else if(条件表达式){
// ...
}else{
// ...
}
//例子
<script type="text/javascript">
var flag;
if (flag) {
document.write('<h3>为真</h3>');
} else {
document.write('<h3>为假</h3>');
}
</script>
- 循环
// for
for(var i = 0; i <lenght; i ++){
}
// while
while(条件表达式){
}
// do...while
do{
}while(条件表达式);
continue:跳出本次循环
break:跳出整个循环
<script type="text/javascript">
for (var i = 0; i < 5; i++) {
document.writeln(i + "<br/>")
}
console.log(i);
for (let j = 0; j < 5; j++) {
document.writeln(j + "<br/>")
}
console.log(j);
</script>
2.6 函数的使用
- 普通函数
// 格式
function 函数名(参数列表){
// js代码
[return 返回值;]
}
<script type="text/javascript">
function sum(a, b) {
return a + b;
}
function sum(a, b, c) {
console.log("参数列表对象:" + arguments);
console.log("a:" + arguments[0]);
console.log("b:" + arguments[1]);
console.log("c:" + arguments[2]);
return a + b + c;
}
console.log(sum(5, 10, 15));
</script>
- 匿名函数
// 格式
var fun = function (参数列表){
[return 返回值;]
}
<script type="text/javascript">
var fun = function (name) {
window.alert("你好:" + name);
}
fun("森森");
</script>
- 变量作用域
<script type="text/javascript">
var a = 5;
function fun() {
var b = 10;
console.log("我是方法内的局部变量B:" + b);
c = 15;
console.log("我是方法内的未声明变量C:" + c);
}
fun();
console.log("我是方法外的未声明变量C:" + c);
</script>
2.7 轮播图
<script>
var myImg = document.getElementById('myImg');
console.log(myImg);
console.log(myImg.src);
myImg.src = '../img/1.jpg';
function show() {
document.write('<h3>好嗨呦</h3>');
}
window.setInterval('show()',2000);
</script>
3 JavaScript事件
属性 | 描述 |
---|
onblur | 元素失去焦点 |
onfocus | 元素获得焦点 |
onchange | 用户改变域 |
onclick | 鼠标点击事件 |
ondblclick | 鼠标双击某个对象 |
onkeydown | 某个键盘的键被按下 |
onkeyup | 某个键盘的键被松开 |
onload | 某个页面或图像被完成加载 |
onmousedown | 某个鼠标按键被按下 |
onmouseout | 鼠标从某元素移开 |
onmouseover | 鼠标被移到某元素之上 |
onmouseup | 某个鼠标按键松开 |
onsubmit | 提交按钮被点击 |
3.1事件注册方式
<body>
<input type="button" value="使用普通函数" onclick="show()"> <br>
<input type="button" value="使用匿名函数" id="myBtn">
</body>
<script type="text/javascript">
function show() {
alert('我是普通函数触发的。。。');
}
document.getElementById('myBtn').onclick = function () {
alert("我是匿名函数触发的")
}
</script>
4 JavaScript内置对象
- 数组对象
<script type="text/javascript">
var arr1 = ['小仓', '波多'];
console.log(arr1);
var arr2 = new Array();
arr2 = ["酒井", "火舞"];
console.log(arr2);
var arr3 = new Array(2);
arr3 = ['小泽', "冲田", 1314];
console.log(arr3);
var arr4 = new Array('貂蝉', '西施', '杨玉环', '王昭君');
console.log(arr4);
console.log(arr1.concat(arr2));
console.log(arr3.join("-"));
console.log(arr4.reverse());
var arr5 = ['c', "d", "a"];
console.log(arr5.sort());
var arr6 = [9, 3, 1, 7, 11];
console.log(arr6.sort(function (a, b) { return b-a; }));
</script>
- 日期对象
<script type="text/javascript">
let date = new Date();
console.log(date);
console.log(date.toLocaleString());
console.log(date.getFullYear());
console.log(date.getMonth() + 1);
console.log(date.getDate());
console.log(date.getDay());
console.log(date.getTime());
</script>
- 全局对象
<script type="text/javascript">
var a = '5a21.a13a4';
var b = "a500px";
console.log(parseInt(b));
console.log(parseFloat(b));
console.log(isNaN(b));
var str = "还有谁。。。";
console.log(str);
let encodeStr = encodeURI(str);
console.log(encodeStr);
console.log(decodeURI(encodeStr));
</script>