javascript概述
-
JavaScript是一门世界上最流行的脚本语言
-
ECMAScript可以理解为是JavaScript的一个标准,latest version:es6;但是大部分浏览器还只停留在支持es5代码。
开发环境与线上环境版本不一致。
- 标签
-
可以放在head中或body的尾部
-
引入JavaScript
- 内部标签
<script> //... </script>
-
外部引入
abc.js
//...
test.html
<script src = "abc.js"></script>
基本语法
-
var代表所有类型
-
条件控制
-
网页审查
console控制台:print var on web: console.log(score)
source: debugger, breakpoint
Network: 抓包
Application: get cookies
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--严格区分大小写 case sensitive-->
<script>
// 1. define variables type name = value
var num = 1;
var name = "zepei";
// alert(num);
// 2. condition control
var score = 95;
if (score > 60 && score < 70){
alert("60-70");
} else if(score > 70 && score < 80){
alert("70-80");
} else{
alert("other")
}
</script>
</head>
<body>
</body>
</html>
数据类型概览
数值、文本、图形、音频、视频
1. number:js不区分小数和整数
123 // 整数
123.1 // 浮点数
1.123e3 // 科学计数法
-123 // 负数
NaN // not a number
Infinity // 无限大
2. 字符串
‘abc’ “abc”
3. 布尔值
true false
4. 逻辑运算
&& 两个都为真,结果为真
|| 一个为真,结果为真
! 真即假,假即真
5. 比较运算符
=
== 等于(类型不一样,值一样,也会判断为true)
=== 绝对等于(类型一样,值一样,结果为true)
-
NaN === NaN 结果为false
这个与所有的数值都不想等,包括自己
-
只能通过 isNaN(NaN) 来判断这个数是否为 NaN
6. 浮点数问题
console.log((1/3)===(1-2/3))
-> false
尽量避免使用浮点数进行运算,存在精度问题
console.log(Math.abs(1/3-(1-2/3))<0.0000001)
-> true
7. null 和 undefined
- null 空
- undefined 未定义
8. 数组
Java数组:一系列相同类型的对象,js不要求类型相同
var arr = [1,2,3,4,5,'hello',true] // 数组用中括号
new Array(1,12,3,4,4,5,'hello');
取数组下标,如果越界,会出现:undefined
9. 对象
对象是大括号,数组是中括号
每个属性之间用逗号隔开
// java: Person person = new Person(1,2,3,4,5);
var person = {
name:"zzp",
age:3,
tags:['js','java','json']
}
// 取值:person.name person.age...
10. 变量
var
// 变量命名:不能以数字、符号(除_,$)开头
严格检查
’use strict’; 严格检查模式,预防js的随意性导致产生的一些问题
必须写在js第一行
局部变量都建议使用let定义
<script>
'use strict';
// 全局变量 global(不安全)
i = 1;
// local; ES6中局部变量用let定义
var j = 1;
let h = 1;
</script>
数据类型
字符串
- 正常字符串使用单引号或双引号包裹
- 注意转义字符 \
\'
\n
\t
\u4e2d // unicode \u####
"\x41" // ascii 'A'
-
多行字符串编写
tab键上方
var a = `
hello
nihao
anihasiyou`;
> console.log(a)
hello
nihao
anihasiyou
- 模版字符串
let name = "zzp";
let age = 3;
let msg = `hello, ${name}`
hello,zzp
- 字符串长度
console.log(str.length)
- 字符串的可变性:不可变
var student = "studet";
console.log(student[0]);
> s
student[0] = 'b';
console.log(student[0])
> s
- 大小写转换
// 是方法 不是属性
student.toUpperCase()
student.toLowerCase()
- 获取指定下标
console.log(student.indexOf('t'))
> 1
- 截取字符串
student.substring(1,3)
// 含前不含后
student.substring(1)
// 从第一个截取到最后一个字符