一:JS数据类型之布尔值(boolean)

1.分类
  • 切记:必须小写
  • true
  • false:0 空字符串 undefined NaN null
Boolean(0)
false
Boolean('')
false
Boolean(NaN)
false
Boolean(undefined)
false
Boolean(null)
false
2.null和undefined的区别
  • 1.null:表示值为空,指定和清空一个变量的时候可以使用 age = null
  • 2.undefined:表示从未被定义过,当声明一个变量且未初始化时,该变量的默认值是undefined

二:对象

1.什么是对象?

JS中所有的事物都可以是对象,且允许自定义对象

对象是带有特殊属性和方法的数据类型

2. 对象之自定义对象

自定义对象方法1:

let a = new Object;

自定义对象方法2:

let b = {};

自定义对象的取值

let s1 = {'usernane':'xie', 'age':18}
undefined
s1
{usernane: 'xie', age: 18}
s1.usernane
'xie'
s1.age
18

三:数组

1.定义:

使用单独的变量名来储存一系列值,相当于python中的列表

var l1 = [1,2,3,4,5]
console.log(l1[1])
2
2.数组的常用方法

方法

功能

示例

.length

数组的长度

l1.length

.push

尾部追加

l2.push(1000)

.pop

获取尾部元素

l2.pop()

.unshift

头部插入

l2.unshift(200)

.shift()

移除头部元素

l2.shift()

.slice()

切片操作,顾头不顾尾

l1.slice(1,3)

.reverse()

反转

l1.reverse()

.join()

将数组元素连接成字符串

l1.join()

.concat()

连接数组

l1.concat(l2)

.sort()

排序

l1.sort()

.forEach()

将数组的每个元素传递给回调函数

.splice()

删除元素,并向数组添加新元素

l2.splice(0,1,1000)

.map()

返回一个数组元素调用函数处理后的值的新数组

四:运算符

1.算数运算符
+ - * / % ++ --

var x=10
var res1=x++   先赋值,后自增
var res2=++x   先自增,后赋值
2.比较运算符
> >= < <= != == === !==

==  弱等于(自动转换成相同的数据类型)
=== 强等于
3.逻辑运算符
&&      ||     !
and     or     not
4.赋值运算符
= += -= *= /=

五:流程控制

1.if else if else
if (条件1){
    条件1成立之后执行的代码
}else if(条件2){
    条件2成立之后执行的代码
}else{
    条件不成立之后执行的代码
}
2.switch
var day=new Date().getDay();
switch (day) {
    case 0:
    console.log('Sunday');
    break;
    case 1:
    console.log('Monday');
    break;
    case 2:
    console.log('Tuesday');
    break;
    default:
    console.log('暂时不提供该定义')
}
3.for循环
for(let i=1;i<100;i++){
    console.log(i)
}
# 小练习:打印下列数组中所有的值
l1 = [1,2,3,4,5,6,7,8,9]
for(let i=0;i<l1.length;i++){
    console.log(l1[i])
}
4.while循环
let i = 0;
while(i<10){
    console.log(i);
    i++;
}

六:函数

1.语法结构
function func(形参){
    函数体代码
    return 返回值
}
2.参数
  • 参数个数不需要一一对应 如果向限制参数个数需要使用关键字arguments
function func(a,b){
    if (arguments===2){
        console.log(a,b)
    }else{
        console.log('参数没有意义对应')
    }
}
3.匿名函数
function(a,b) {
    return a-b;
}
4.箭头函数
var f = v => v;
等同于
var function f(v){
    return v;
}


var f = () => 5;
等同于
var f=function(){
    return 5;
}

var sum = (num1,num2) => num1 + num2;
等同于
var sum = function(num1, num2){
    return num1+num2;
}

七:JS内置对象

类似于python中的内置函数或者内置模块

内置对象

功能

使用

Date

日期对象

JSON

序列化对象

JSON.stringify()序列化,JSON.parse()反序列化

RegExp

正则对象

var reg2 = /1

Error

错误对象

八(重点):BOM和DOM操作

1.BOM:浏览器对象模型

通过写JS代码和浏览器交互

BOM操作

功能

示例或者注释

window.open()

打开一个新的浏览器窗口

window.open(‘https://www.baidu.com’)

window.close()

关闭浏览器窗口

关闭的必须是自己创建的页面

window.navigator.userAgent()

用来区分设备和浏览器

window.history.forward()

相当于浏览器中的回到下一个页面

window.history.back()

相当于浏览器中的回到上一个页面

window.location.href

查看当前网页的地址

window.location.href = 新网址

跳转到新网址的前端

window.location.reload()

刷新当前页面

alert()

警告框

confirm()

确认框

prompt()

提示框

定时器相关操作(重点)

function func01(){
    alert(123)
}
// 设置定时操作
let t = setTimeout(func01, 3000)
// 取消定时操作
clearTimeout(t)
let s1=null
function showMsg() {
    alert(333)
}
// 每隔3秒执行一次
s1.setInterval(fun1, 3000)
}
function clearMission() {
    clearInterval(s1)  // 取消
}
setTimeout(clearMission, 9000)
showMsg()
2.DOM:文档对象模型

通过写JS代码可以跟html交互

1.查找标签的方法

//id值查找
document.getElementById()
//class值查找
document.getElementByClass()
//标签名查找
document.getElementByTagName()

2.节点

就相当于是css中的标签

parentElement            父节点标签元素
children                 所有子标签
firstElementChild        第一个子标签元素
lastElementChild         最后一个子标签元素
nextElementSibling       下一个兄弟标签元素
previousElementSibling   上一个兄弟标签元素

3.节点操作

  • 1.创建节点
let XXXEle = document.createElement('标签名')
let divEle=document.createElement('div')
  • 2.属性操作
节点.属性    只能设置默认属性
divEle.id = 'd1'
aEle.innerText = '啦啦啦'
divEle.append(aEle)   把标签加到div标签中去
节点.setAttribute()   默认属性,自定义属性都能设置
  • 3.文本操作
divEle.innerHTML    html标签格式生效
divELe.innerText    html标签格式不生效
divEle.innerHTML = '<h1>态度</h1>'
divEle.innerText = '<h1>态度</h1>'

  1. a-zA-Z ↩︎