2.2 基本语法入门
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- JavaScript严格区分大小写-->
<script>
//java里面定义变量 变量类型 变量名 = 变量值;
// 1.javascript里面一切的变量都是var
var score = 72;
// alert(num);
// 2.条件控制
if (score>60 && score<70){
alert("60~70");
}else if (score>70 && score<80){
alert("70~80");
}else{
alert("other");
}
//console.log(score) 在浏览器的控制台打印变量!相当于System.out.println();
/*
*
*
* */
</script>
</head>
<body>
</body>
</html>
必备调试须知:
2.3数据类型
数值,文本,图形,音频,视频…
变量
var
number
js不区分小数和整数,Number
123//整数123
123.1//浮点数123.1
1.123e3//科学计数法
-99//负数
NaN //not a number
Infinity //表示无限大
字符串
‘abc’ “abc”
布尔值
true false
逻辑运算
&& 与 两个都为真,结果为真
|| 或 一个为真,结果为真
! 非 真即假 假即真
比较运算符!!! 重要
= 赋值符号
== 等于 (类型不一样,值一样,也会判断为true)
=== 绝对等于 (类型一样,值一样,结果为true)
这是一个JS的缺陷,坚持不要使用==比较
须知:
NaN这个与所有的数值都不相等,包括自己
浮点数问题:
console.log((1/3) === (1-2/3))
尽量避免使用浮点数进行运算,存在精度问题!
可以使用这个方法进行判断:
console.log( Math.abs(1/3 - (1 - 2/3))< 0.000000001);
null 和undefined:
null: 空
undefined:未定义
数组
Java的数组必须是相同类型的对象,JS中不需要这样。
var arr = [1,2,3,4,'hello',null,true];
new Array(1,12,3,4,5,null);
取数组下标:如果越界了,就会报undefined
对象
对象是用大括号
数组用中括号
每个属性之间使用逗号隔开,最后一个不需要使用逗号
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//Java写法 Person person = new Person(1,2,3,4,5,);
var person ={
name:"qinjiang",
age:3,
tags:['js','java','web','...']
}
</script>
</head>
<body>
</body>
</html>
取对象的值,在控制台操作:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--
前提:IDEA需要设置支持ES6
'use strict';严格检查模式,预防JavaScript的随意性导致产生的一些问题
局部变量建议使用let去定义
必须写在JavaScript的第一行
-->
<script>
'use strict';
//变量
let i = 1;
//ES6 局部变量用let定义
</script>
</head>
<body>
</body>
</html>
3 数据类型
3.1 字符串
1.正常字符串我们使用单引号,或者双引号包裹。
2.注意转义字符\
\': 字符串
\n: 换行
\t : table
\u4e2d: 中 \u#### unicode字符
"\x41" Ascll字符
3.多行字符串编写
//tab键上面 esc键下面
var msg = `hello
world
nihaoya
haohaoxuexio `
4.模板字符串
//tab键上面 esc键下面
let name = "qinjiang";
let age = 3;
let msg = `你好呀,${name}`
console.log(msg);
5.字符串长度
console.log(str.length)
6.字符串的可变性:不可变
7.大小写转换
//注意这里是方法,不是属性
console.log(student.toUpperCase())//大写
console.log(student.toLowerCase())//小写
8.indexOf
console.log(student.indexOf('t'))//获取字符串指定的下标
9.substring
console.log(student.substring(2))//从第2个字符串截取到最后一个
student.substring(1,3)//包含第一个不包含第3个
3.2数组
Array可以包含任意的数据类型
var arr = [1,2,3,4,5,6]
arr[0] 取值
arr[0] = 1 //按下标赋值
1.长度
arr.length
注意:假如给arr.length赋值,数组大小就会发生变化 ,如果赋值过小,元素就会丢失。
2.indexOf:通过元素获得当前元素所在的下标索引
字符串的"1"和数字1是不一样的
3.slice() 截取Array的一部分,返回一个新数组,类似于String中的substring
4.方法 push(),pop()
push:压入到尾部
pop:弹出尾部的一个元素
-
unshift(), shift()头部压入与弹出
unshift:压入到头部 shift:弹出头部的一个元素
6.排序sort()
arr = ['B','C','A']
(3) ["B", "C", "A"]0: "B"1: "C"2: "A"length: 3__proto__: Array(0)
arr.push('D')
4
arr
(4) ["B", "C", "A", "D"]
arr.sort()
(4) ["A", "B", "C", "D"]
7.元素反转
arr
(4) ["B", "C", "A", "D"]
arr.sort()
(4) ["A", "B", "C", "D"]
arr.reverse()
(4) ["D", "C", "B", "A"]
8.concat()拼接
(4) ["D", "C", "B", "A"]
arr.concat([1,2,3,4])
(8) ["D", "C", "B", "A", 1, 2, 3, 4]
arr
(4) ["D", "C", "B", "A"]
注意:contact()并没有修改数组,只是会返回一个新的数组
9.连接符join
打印拼接数组,使用特定的字符串连接
arr
(4) ["D", "C", "B", "A"]
arr.join('-')
"D-C-B-A"
10.多维数组
arr = [[1,2],[3,4],["5","6"]]
arr[1][1]
4
数组:存储数据(如何存,如何取)
3.3对象
若干个键值对
var 对象名 = {
属性名: 属性值,
属性名: 属性值,
属性名: 属性值
}
//定义了一个person对象,其有四个属性
var person = {
name:"kuangshen",
age:3,
email:"24736743@qq.com",
score:90
}
JS中对象,以{…}表示一个对象,键值对描述属性xxxxx:xxxxx,多个属性之间使用逗号隔开,最后一个属性不加逗号。
JavaScript中的所有的键都是字符串,值是任意对象。
1.对象赋值
person.name
"kuangshen"
person.age
3
person.name = "qinjiang"
"qinjian
2.使用一个不存在的对象属性,不会报错.undefined
person.hhhhhh
undefined
3.动态的删减属性,通过delete删除对象的属性
delete person.name
true
person
{age: 3, email: "24736743@qq.com", score: 90}
4.动态的添加,直接给新的属性添加值即可
person
{age: 3, email: "24736743@qq.com", score: 90}
person.haha = "haha"
"haha"
person
{age: 3, email: "24736743@qq.com", score: 90, haha: "haha"}
5.判断属性值是否在这个对象中! xxx in xxx
age'in person
true
//集成 in可以找到父类的方法
'toString' in person
true
6.判断一个属性是否是这个对象自身拥有的hasOwnProperty()
person.hasOwnProperty('toString')
false
person.hasOwnProperty('age')
true