js是什么?
是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。
作用:
网页特效(监听用户的一些行为让网页作出对应的反馈)
表单验证(针对表单数据的合法性进行判断)
数据交互(获取后台的数据,渲染到前端)
服务端编程(node.js)
方便查询:https://developer.mozilla.org/zh-CN/
书写位置:一般用外部连接或内部在</body>前写<script></script>
注释怎么写?和java一样
结束符,和Java一样,分号;结束 或 不写
js输入和输出语法
文档输出
存放的是标签,会被解析成网页元素
控制台输出
输入语句
<body>
<script>
document.write('')
document.write('<h1>我是标题</h1>')
alert('警告!警告!')
console.log('这是控制台日志') //控制台日志输出
prompt('请输入语句')
</script>
</body>
声明变量
let 变量名
let age = 18
数组
let arr=[1,2,3,4,5]
let arr2 = ['sad','happy','blue','good']
document.write(arr2[2])
常量
const G = 9.8
//常量不允许重新赋值,声明的时候必须初始化
数据类型
基本数据类型
number、string、undefined、boolean、null
引用数据类型
object对象
模板字符串(反引号``)
let name = prompt('请输入名字')
let age = prompt('请输入年龄')
document.write(`大家好,我叫${name},今年${age} 岁了`)
null和undefined
typeof 检测数据类型
console.log(typeof (null + 1))
console.log(typeof null)
console.log(typeof undefined)
console.log(typeof (undefined + 1))
对应结果
对应结果
运算符
console.log(1 == '3') // false
console.log(1 == '1') // true
console.log(1 === '1') // false
==
先比较数据类型,然后转换数据类型,最后比较值
===
先比较数据类型,不同直接返回false,相同再比较值是否相等
在Java中,操作字符串前,会先判断是否为null,不为null,才会进行其他操作,在js中也是一样
let str = 'abc'
if(str){
alert("true")
}else{
alert("false")
}
流程控制语句
类似Java
函数
<script>
//方式一:
function 函数名(参数1, 参数2) {
要执行的代码
}
//方式二:
let 函数名 = function (参数列表) {
要执行的代码
}
//形式参数不需要类型,因为Javascript是弱类型语言
function add(a, b) {
return a + b;
}
</script>
函数调用
let result = add(10,20);
javaScript常用对象
基本对象、BOM对象、DOM对象
数组对象
数组定义格式有两种:
方式1:
let 变量名 = new Array(元素列表)
let arr = new Array(1,2,3)
方式2:
let 变量名 = [元素1,元素2,...]
let arr = [1,2,3]
数组元素操作
<script>
let arr = ['good', 'happy', 'wonderful', 'abc']
// document.write(arr[0])
// for (let i = 0; i < arr.length; i++) {
// alert(arr[i])
// }
arr.push("sheep")
// arr.pop() //删除最后一个元素并返回
// arr.reverse() //倒序排列
// arr.shift()//删除第一个元素
arr.unshift("lion")//在第一个元素前插入
for (let i in arr) {
console.log(arr[i])
}
</script>
特点:js中的数组相当于java中的集合。数组的长度是可以变化的,而Javascript是弱类型,所以可以存储任意的类型的数据。
普通for循环
let arr = [1,2,3]
for(let i= 0,i<arr.length;i++){
alert( arr[i])
}
forin(不会遍历空项)
for (let i in arr) {
console.log(arr[i])
}
foreach()
Object对象
<script>
let obj = new Object()
let obj1 = {}
obj = {
name: "zhangsan",
age: 18,
email: "zhangsan@email.com",
contact: {
phone: 188213414,
telegram: "@zhangsan"
}
}
console.log(obj.contact)
obj.age = 20
obj.contact.weChat = "dasd"
console.log(obj)
</script>
闭包(难点)
闭包是一个函数以及其捆绑的周边环境状态的引用的组合。换句话来说,闭包可以让开发者从内存函数访问外部函数的作用域。JavaScript中,闭包会随着函数的创建而被同时创建。
<script>
function makeAdder(a) {
return function (b) {
return a + b
}
}
let x = makeAdder(5)
let sum = x(6)
console.log(sum) //11
</script>