JavaScript
目录
1.2基本语法入门 弹窗alert() 打印console.log()
3.slice()截取Array的一部分,返回一个新数组,类似于String中的substring,[ )
5.判断一个属性是否是这个对象自身拥有的hasOwnProperty()
1.假设在函数体中声明,则在函数体外不可以使用~如果非要使用,则涉及到闭包
2.如果两个函数使用了相同的变量名,只要在函数内部,就不冲突
4.假设,内部函数变量和外部函数的变量重名,由内向外查找——就近原则
- 什么是JavaScript
1.1、概述
JavaScript是一门世界上最流行的脚本语言
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为 开发Web页面的脚本语言而出名,但是它也被 用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且 支持面向对象、命令式和声明式(如函数式编 程)风格。
一个合格的后端人员,必须精通JavaScript
1.2、历史
历史相关链接:JavaScript 的历史https://www.w3school.com.cn/js/pro_js_history.asp
ECMAScript它可以理解为是JavaScript的一个标准
最新版本已经到es6版本
但是大部分浏览器还只停留在支持es5代码上!
开发环境–线上环境,版本不一致 -
一、快速入门
-
1.1引入JavaScript
-
1.内部标签
<script>
//....
</script>
2.外部引入
1.2基本语法入门 弹窗alert() 打印console.log()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
<!--JavaScript严格区分大小写-->
//1 定义变量 变量类型 变量名=变量值;
var score=50;
//2 条件控制 if if else if if else
if(score>70&&score<60){
alert("60~70");
}else if (score>80&&score<70){
alert("70~80");
}else{
alert("other")
}
// console.log(score) 50
</script>
</head>
<body>
浏览器必备调试须知:
1.3数据类型
1.变量
Var
2.Number
JavaScript中不区分小数和整数
-99 //负数99
NaN //not a number
Infinity //表示无限大
3.字符串
‘ABC’ “ABC”
4.布尔值
True、false
5.逻辑运算
&& 与(两个为真则真)
|| 或(有真则真 )
! 非(有真则假)
6.比较运算符
= 赋值
==等于(类型不一样,值一样,也会判断为true)
===绝对等于(类型一样,值一样,也会判断为true)
这是一个JS的缺陷,坚持不要使用==比较
须知:
NaN==NaN,这个与所有的数值都不相等,包括自己
只能通过isNaN(NaN)来判断这个数是否是NaN
浮点数问题:
console.log(1/3===1-2/3)
尽量避免使用浮点数进行运算,存在精度问题!
console.log(Math.abs(1/3-(1-2/3))<0.000001) ;
7.null和undefined
Null 空
Undefined 未定义
8.数值
为了保证代码的可读性,尽量使用第一种
Java的 数组中必须是类型一致,js中不用
var arr[1,2,'dd',null,true];
new array[1,2,'dd',null];
数组下标越界:undefined
- 对象
对象是大括号{ },数组是中括号[ ]
每个属性之间用逗号隔开,最后一个不需要添加
//person person=new person(1,3,3,4,5)
var person ={
name:"zhanghuan",
age:8,
tags:['js','java','web','...']
}
取值:
1.4严格检查模式
设置ES6:
-
二、数据类型
2.1字符串
1.正常字符串’ ’ “ ”
2.转义字符 \
\’ a’
\n 换行
\t 空格
\u4e2d unicode编码
\x41 ascll字符
3、多行字符串编写 ~连接
let msg=
~hello
Word
你好呀~
console.log(msg)
4、模板字符串
let name="张欢";
let age=18;
let ms=~你好呀${name}~
5.字符串长度
str.length
6.字符串的可变性,不可变
-
7.大小写转换
//注意,这里是方法,不是属性
8.截取:.charAt( );
console.log(student.charAt(1))
9.获取位置:.indexOf(' '))
console.log(student.indexOf('t'))
10.截取下标几到几.substring(1,3))
console.log(student.substring(1,3)) tu===[1,3)
console.log(student.substring(0)) 截取全部
2.2数组
Array可以包含任意的数据类型
var arr=[1,2,3,4,5,6]
1.长度
Arr.length
注意:加入给arr.lenrth赋值,数组大小就会发生变化~如果赋值过小,元素就会丢失。
2.indeOf 通过元素获得下标索引
arr.indexOf(3) 2
字符串的”1”和数字1是不同的。
3.slice()截取Array的一部分,返回一个新数组,类似于String中的substring,[ )
4.push(压入),pop (弹出)往尾部压入或者弹出
arry [0, 1, 2, 3, 4, 5, 6]
arry.push('a','b') //arry [0, 1, 2, 3, 4, 5, 6, 'a', 'b']
arry.pop() //'b'
arry.pop() //'a'
arry.pop() //6
arry.pop() //5
//arry [0, 1, 2, 3, 4]
5.unshift(压入),shift(弹出)头部
arry [0, 1, 2, 3, 4]
arry.unshift('a') //arry ['a', 0, 1, 2, 3, 4]
arry.shift() // 'a' //arry [0, 1, 2, 3, 4]
6.排序sort()
var arr=[2,4,1]
arr.sort() [1, 2, 4]
7.元素反转reverse()
arr.reverse() [4, 2, 1]
8.替换 concat()
arr.concat('a','b','c') [4, 2, 1, 'a', 'b', 'c']
注意:concat()并没有修改数组,字数会返回一个新的数组
9.连接符,join(),fou循环拼接
打印凭借数组,使用特定的字符串连接
var car=["宝马","奔驰","法拉利","奥迪"]
for (let i = 0; i < car.length; i++) {
}
console.log(car.join("~"))
10.多维数组
var arr=[[0,1],[1,2],[2,3]]
arr[0][0] 0
arr[0] [0, 1]
数组:存储数据(如何存,如何取,方法自己实现!!)
2.3对象
var person={
name:"张三",
age:3,
email:"1755622972.com",
score:10
}
person.name '张三';
person