1. 初识JavaScript
是运行在客户端的脚本语言。 脚本语言:不需要编译,运行过程中由js解释器逐行进行解释。 现在也可以基于Node.js技术进行服务端编程。
1.1 作用
表单动态校验;网页特效;服务端开发(Node.js);桌面程序(Electron);APP(Cordova);控制硬件-物联网(Ruff);游戏开发(cocos2d-js)
1.2 浏览器执行
1.3 JS组成
1.4 初体验
JS有三种书写位置:
a.行内式
b.内嵌式
c.外部式
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<style
></style
>
<!-- 2.内嵌式的js
-->
<script
>
</script
>
<!-- 3. 外部js script 双标签
-->
<script src
="my.js"></script
>
</head
>
<body
>
<!-- 1. 行内式的js 直接写到元素的内部
-->
<!-- <input type
="button" value
="唐伯虎" onclick
="alert('秋香姐')"> -->
</body
>
</html
>
1.5 注释
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
</script
>
</head
>
<body
>
</body
>
</html
>
1.6输入输出
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
prompt('请输入您的年龄');
alert('计算的结果是');
console
.log('我是程序员能看到的');
</script
>
</head
>
<body
>
</body
>
</html
>
2. 变量
变量是程序在内存中申请的一块用来存放数据的空间。
2.1 变量的使用
两步:1.声明变量;2.赋值。
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var age
;
age
= 18;
console
.log(age
);
var myname
= 'pink老师';
console
.log(myname
);
</script
>
</head
>
<body
>
</body
>
</html
>
2.2 案例
案例一
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var myname
= '旗木卡卡西';
var address
= '火影村';
var age
= 30;
var email
= 'kakaxi@itcast.cn';
var gz
= 2000;
console
.log(myname
);
console
.log(address
);
console
.log(age
);
console
.log(email
);
console
.log(gz
);
</script
>
</head
>
<body
></body
>
</html
>
案例二
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var myname
= prompt('请输入您的名字');
alert(myname
);
</script
>
</head
>
<body
>
</body
>
</html
>
2.3 变量的语法扩展
更新变量; 声明多个变量; 声明变量的特殊情况;
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var myname
= 'pink老师';
console
.log(myname
);
myname
= '迪丽热巴';
console
.log(myname
);
var age
= 18,
address
= '火影村',
gz
= 2000;
var sex
;
console
.log(sex
);
qq
= 110;
console
.log(qq
);
</script
>
</head
>
<body
>
</body
>
</html
>
2.4 变量命名规范
由字母、数字、下划线、美元符号组成; 严格区分大小写; 不能以数字开头; 不能是关键字、保留字,如for,while;
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var app
= 10;
var App
= 100;
console
.log(app
);
console
.log(App
);
console
.log(name
);
</script
>
</head
>
<body
>
</body
>
</html
>
2.5 案例
交换两个变量值
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var temp
;
var apple1
= '青苹果';
var apple2
= '红苹果';
temp
= apple1
;
apple1
= apple2
;
apple2
= temp
;
console
.log(apple1
);
console
.log(apple2
);
</script
>
</head
>
<body
></body
>
</html
>
3. 数据类型
3.1 变量的数据类型
简单数据类型:number, string, boolean, undefined, null; 复杂数据类型:object;
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var num
= 10;
var str
= 'pink';
var x
= 10;
x
= 'pink';
</script
>
</head
>
<body
>
</body
>
</html
>
3.2 数字型number
类型
范围
特殊数字
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var num
= 10;
var PI = 3.14
var num1
= 010;
console
.log(num1
);
var num2
= 012;
console
.log(num2
);
var num3
= 0x9;
console
.log(num3
);
var num4
= 0xa;
console
.log(num4
);
console
.log(Number
.MAX_VALUE);
console
.log(Number
.MIN_VALUE);
console
.log(Number
.MAX_VALUE * 2);
console
.log(-Number
.MAX_VALUE * 2);
console
.log('pink老师' - 100);
</script
>
</head
>
<body
>
</body
>
</html
>
isNaN()
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
console
.log(isNaN(12));
console
.log(isNaN('pink老师'));
</script
>
</head
>
<body
>
</body
>
</html
>
3.3 字符串string
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var str
= '我是一个"高富帅"的程序员';
console
.log(str
);
var str1
= "我是一个'高富帅'的\n程序员";
console
.log(str1
);
</script
>
</head
>
<body
>
</body
>
</html
>
常见嵌套
转义符
弹出网页警示框案例
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
alert('酷热难耐,火辣的太阳底下,我挺拔的身姿,成为了最为独特的风景。\n我审视四周,这里,是我的舞台,我就是天地间的王者。\n这一刻,我豪气冲天,终于大喊一声:"收破烂啦~"');
</script
>
</head
>
<body
>
</body
>
</html
>
字符串长度与拼接
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var str
= 'my name is andy';
console
.log(str
.length
);
console
.log('沙漠' + '骆驼');
console
.log('pink老师' + 18);
console
.log('pink' + true);
console
.log(12 + 12);
console
.log('12' + 12);
</script
>
</head
>
<body
>
</body
>
</html
>
显示年龄案例
<script
>
console
.log('pink老师' + 18);
console
.log('pink老师' + 18 + '岁');
var age
= 19;
console
.log('pink老师age岁');
console
.log('pink老师' + age
+ '岁');
console
.log('pink老师' + age
+ '岁');
</script
>
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<meta http
-equiv
="X-UA-Compatible" content
="ie=edge">
<title
>Document
</title
>
<script
>
var age
= prompt('请输入您的年龄');
var str
= '您今年已经' + age
+ '岁了';
alert(str
);
</script
>
</head
>
<body
>
</body
>
</html
>
3.4 布尔型 boolean
<script
>
var flag
= true;
var flag1
= false;
console
.log(flag
+ 1);
console
.log(flag1
+ 1);
var str
;
console
.log(str
);
var variable
= undefined
;
console
.log(variable
+ 'pink');
console
.log(variable
+ 1);
var space
= null;
console
.log(space
+ 'pink');
console
.log(space
+ 1);
</script
>
3.5 获取变量数据类型
<script
>
var num
= 10;
console
.log(typeof num
);
var str
= 'pink';
console
.log(typeof str
);
var flag
= true;
console
.log(typeof flag
);
var vari
= undefined
;
console
.log(typeof vari
);
var timer
= null;
console
.log(typeof timer
);
var age
= prompt('请输入您的年龄');
console
.log(age
);
console
.log(typeof age
);
</script
>
字面量
<title
>Document
</title
>
<script
>
console
.log(18);
console
.log('18');
console
.log(true);
console
.log(undefined
);
console
.log(null);
</script
>
3.6 数据类型转换
转换为字符型
<script
>
var num
= 10;
var str
= num
.toString();
console
.log(str
);
console
.log(typeof str
);
console
.log(String(num
));
console
.log(num
+ '');
</script
>
转换为数字型
<script
>
console
.log(parseInt('3.14'));
console
.log(parseInt('3.94'));
console
.log(parseInt('120px'));
console
.log(parseInt('rem120px'));
console
.log(parseFloat('3.14'));
console
.log(parseFloat('120px'));
console
.log(parseFloat('rem120px'));
var str
= '123';
console
.log(Number(str
));
console
.log(Number('12'));
console
.log('12' - 0);
console
.log('123' - '120');
console
.log('123' * 1);
</script
>
计算年龄案例
<script
>
var year
= prompt('请您输入您的出生年份');
var age
= 2018 - year
;
alert('您今年已经' + age
+ '岁了');
</script
>
简单加法器案例
<script
>
var num1
= prompt('请您输入第一个值:');
var num2
= prompt('请您输入第二个值:');
var result
= parseFloat(num1
) + parseFloat(num2
);
alert('您的结果是:' + result
);
</script
>
转换为布尔型
<script
>
console
.log(Boolean(''));
console
.log(Boolean(0));
console
.log(Boolean(NaN));
console
.log(Boolean(null));
console
.log(Boolean(undefined
));
console
.log('------------------------------');
console
.log(Boolean('123'));
console
.log(Boolean('你好吗'));
console
.log(Boolean('我很好'));
</script
>
参考: 视频 代码