JavaScript是一门世界上最流行的脚本语言
与java语言没有联系
需要精通
引入JavaScript:
1.在HTML中写
标签中写入JS代码
<script>
//提示框
alert("hwllo world");
</script>
2.外部引入
创建JS文件并引入
<script src="js/qj.js"></script>
标签必须成对出现,不可以用自闭和标签!!!
定义变量
变量类型都为 var 值可以为数字型、字符串等等所有java常见类型;
var num=1;
var string="songyi";
JS结尾可以不带分号,但是一般都带上规范一点。且严格区分大小写!!
流程控制
if,whlie,for与Java无区别
if(1<2){
alert("true");
}else{
alert("true");
}
//可嵌套
forEach循环遍历数组
let age = [1,13,4,24,541,12,46,463]
//函数
age.forEach(function(value){
console.log(value)
});
for in循环
输出的是数组的下标,而不是内容
for(var num in age){
if(age.hasOwnProperty(num)){
console.log("存在")
console.log(age[num])
}
}
for of循环
输出数组的值
支持Set和Map的输出
let arr = [1,2,3]
for(let x of arr){
console.log(x)
}
控制台的使用
在如图选项中可以输入JS语句执行
常用的语句:
打印变量:
console.log(变量名)
断点
数据类型
数字,文本,图片,视频,音频
JS不区分小数和整数。
变量
变量名不能用数字开头
Number
123 //整数123
123.1 //浮点数
1.123e3//科学计数法
-99 //负数
NaN //not a number 不是数字
Infinity//表示无限大
字符串
'abc'
"abc"
注意转义字符 \n ` \t \u4e2d
多行字符串编写
使用`包裹
var string=`
你好
hello
wow
`
模板字符串
let name="songyi";
let msg=`你好!${name}` //注意是`不是单引号
常用方法
.length 字符串长度
.toUpperCase() 转大写
.toLowerCase() 转小写
.indexof(“a”) 查询某字符在字符串的第几个位置出现返回值为数字
.substring(1,3) 从字符串的第二个字符到第三个字符截取出来(包含前边不包含后边)
布尔值
true
false
逻辑运算
&& 与
|| 或
! 非
比较运算符
== //等于,当类型不一样,但是值一样时,也会判断为ture
=== //绝对等于,类型一样,值一样才会判断为ture
tips:
NaN与所有的数值都不相等,包括自己。
通过isNaN(数据)判断这个值是不是NaN;
浮点数问题:
避免使用浮点数
null和undefined
null 空
undefined 未定义
数组
JS中数组内对象类型可以不同
var a=[1,2,3,"abc",null,ture]
数组长度可变,当长度大于数组内容时,后边的值为空,即未定义
当长度赋值小于含有元素个数,多余的元素会丢失
array.length=2; 给数组array定义长度为2
.indexof(“a”) 通过元素获得下标
.slice(2,4) 截取数组的一部分,返回一个新的数组类似于字符串的 substring
.push(“a”,“b”) 在数组末尾添加新元素
.pop() 弹出数组末尾的元素
.unshift(“a”,“b”) 在数组头部添加元素
.shift("") 弹出数组头部元素
.sort() 排序
.revers 元素顺序翻转
.concat([1,2,3]) 拼接数组(并没有改变原数组,只是返回了一个新的数组)
对象
若干个键值对
属性间用逗号隔开,最后一个属性后不加逗号
//JAVA Person person = new person(1,2,3,4,5);
var person{
name:"songyi",
age:20,
tags:['js','java','web']
}
//取出对象的值
person.name
person.age
person.tags[]
使用一个不存在的对象属性,不会报错,只会未定义
可以动态的删减和添加属性
删除
delete person.name //返回布尔值
添加
person.haha = "haha"
判断属性值是否在对象中
缺陷:父类所拥有的属性名他也能查询到
'age' in person
//继承
'toString' in person
判断属性是否是自身拥有的
person.hasOwnProperty("age")
Map和Set
ES6的新特性
Map
//Map集合
let map = new Map([['tom','10'],['jarry','90'],['songyi',100]]);
let name = map.get("songyi");//通过key获得value
//输出结果为100
map.set('admin',60);//添加或修改
map.delete('tom');
Set:无序不重复的集合
let set = new set([3,2,3,2,2,3,3]);//可以去重
//输出结果为[3,2]
set.add(2);//添加
set.delete(2);//删除
set.has(2);//判断set中是否有某个元素
//
iterator