JavaScript(1)
介绍
JavaScript是一门世界上最流行的语言,Java和JavaScript没有关系
编写第一个js代码
-
使用<script>标签
-
可以在body或者head里面进行编写
行内引入:在html文件中使用<script>标签,在标签内部编写
<body>
<script>
alert("Hello World!");
</script>
</body>
外部引入:单独写一个js文件,通过<script>标签引入
<script src="js/js1.js" ></script> //<script></script>必须成对出现,type="text/javascript"不用写,默认就是js
alert("Hello World!");
基本语法
javascript大小写严格,可以在网页控制台进行调试
-
变量定义:
var 变量名=变量值;
2.条件控制:if-else if-else if可以嵌套
if(2>1){
alert("true");
//弹框弹出true
}
/*
多行注释
和Java相同
*/
3.控制台打印变量
console.log(变量) //打印变量的值
4.数据类型
number:js不区分整数和小数,NaN表示不是一个数
字符串:“abc” 'abc'
布尔值:true false
运算:位运算(& | ^ *)逻辑运算(&& || !)
比较运算符:使用===,绝对相等。使用==,如果类型不同而值相同也会输出true。
注意:NaN===NaN //false
只能通过isNaN(NaN)判断这个数是不是NaN
(1/3)===(1-2/3)
false
//注意尽量不要使用浮点数,会失去精度
1-2/3
0.33333333333333337
1/3
0.3333333333333333
使用:Math.abs(1/3-(1-2/3))<0.0000001
Math.abs(1/3-(1-2/3))<0.0000001
true
空指针和未定义:null空指针 undefined未定义
数组:一些可以不是同一类型的数据 var a=[1,1,2,3,1.2,'Hello',null]
var a=[1,2,3,4.2,null,true,'Hello'];
>console.log(a);
>[1, 2, 3, 4.2, null, true, 'Hello']
>console.log(a[3]);
>4.2
>console.log(a[8]);
>undefined //数组下标越界时,显示未定义
对象:对象用{},数组用[]
var person={
name:"lerry",
age:18,
subject:['English','python','java']
}
//打印
>person.age
>18
严格检查模式
-
在js代码第一行使用"use strict",预防js的随意性导致产生的一系列问题
-
局部变量使用let定义。
数据类型
string是不可变的,不能修改值
console.log("s");
console.log('s');
console.log("\" \""); //使用\转译
var mg=`samkdlc
a,kdmkncjd
asndjwjnjebabs
`
console.log(mg); //输出多行字符时,使用``包裹
var a=`你好,${name}`; //模板字符串
console.log(a);
console.log(a.length);//获取长度
//大小写转换
console.log(name.toUpperCase());
console.log(name.toLowerCase());
//subString获取指定长度字符串 [)
console.log(name.substring(1,6));
//indexOf获取某个元素下标
console.log(name.indexOf('e'));
数组
数组长度是可变的,如果赋值过小,元素就会丢失
//数组长度
a.length;
//indexOf 字符串的“1”和数字1是不一样的
a.indexOf();
//slice 截取数字的一部分,返回一个新的数组,相当于substring()
a.slice();
//push在最后添加 pop输出最后的元素
a.push(带压入元素);
a.pop(); //元素弹出之后,数组长度-1
//unshift()在头部添加 shift()弹出头部的元素
a.unshift(); a.shift();
//sort()元素排序 reverse()元素反转
a.sort(); a.reverse();
//concat()拼接
a.concat() //并没有修改数组,只是返回了一个新的数组
//join()连接
a.join() //使用指定的符号返回连接数组元素
对象
使用键值对,用{}括起来,多个属性间使用‘,’隔开
//定义对象
var person={
name:"lerry",
age:18,
date:2022-7-14
}
//调用一个不存在的对象不会报错
>person.time;
>undefined
//动态删减属性
>delete person.date; //删除
>true
>person.time='14:58' //添加
>{name: 'lerry', age: 18, time: '14:58'}
//判断属性值是否在对象之中
'name' in person //如果是父类的方法,会继承,用in无法判断出是不是该对象自身的属性
person.hasOwnProperty('name'); //可以判断出对象本身是否存在该属性
Map和Set
1.Map 键值对形式,通过“键”获得”值“
//Map获取值
var map=new Map([['python',89],['java',93],['js',100]]);
var score=map.get('java');
console.log(score);
>93
//Map设置值
map.set('c++',91);
console.log(map);
>Map(4) {'python' => 89, 'java' => 93, 'js' => 100, 'c++' => 91}
//Map删除
map.delete("python");
>Map(2) {'java' => 93, 'js' => 100}
2.Set 无序不重复的集合,可以去重
var set=new Set([1,2,4,5,3,2,1,1,1]);
console.log(set);
>Set(5) {1, 2, 4, 5, 3}
//Set添加值
set.add()
//set删除值
set.delete()
//判断set中是否包含一个数
set.has()
3.Iterator 迭代遍历set或map
var set=new Set([1,2,4,5,3,2,1,1,1]);
var it=set[Symbol.iterator]();
console.log(it);
>SetIterator {1, 2, 4, 5, 3}
//通过for-of遍历,打印的是具体的值,用来便利Map和Set
for(var x of set){
console.log(x);
}
流程控制
if判断
var age=25;
if(age>30){
alert("中年人");
}else if(age<30 && age>15){
alert("青年人");
}else{
alert("小朋友");
}
循环
//for循环
var age=25;
for(var i=0;i<=age;i++){
console.log(i);
}
//while循环
while(age){
console.log(age);
age--;
}
//数组循环
a.forEach(function(value){
console.log(value);
})
//for in 循环遍历的是下标
for(i in a){
if(a.hasOwnProperty(i)){
alert("存在");
}
console.log(a[i]);
}

浙公网安备 33010602011771号