跳到主要内容

JS模糊相等与全等于

以下结果全部为true

null == undefined
"1" == true
[1] == true
1 == true
1 == "1"

siblings():获得匹配元素集合中每个元素的兄弟元素

单个函数方法

function SelectCard(obj) {
$(obj).addClass('card-active').siblings().removeClass("card-active");
}

将函数封装到对象里面,通过对象的方法运用函数

// onclick="SelectPrice.select(this);"

let SelectPrice = {
select: function (obj) {
$(obj).addClass('card-active').siblings().removeClass("card-active");
}}

抽象编程

三段推论

逻辑与直觉

结构化编程

  1. 顺序
  2. if...else
  3. for 循环

流程与伪代码

完全依靠大脑,判断流程和伪代码流程

数据结构

描述的是数据与数据之间的关系和结构,如:两个男性,父子..朋友..体重都 70kg..等。

数据结构 = 数据形式 + 操作(增删改查)

  1. 顺序数据
  2. 无序数据
  3. hash(哈希表)---- 代表学号与姓名
let minOf2 = (number) => {
if(number[0] < number[1]{
return number[0]
}
else{
return number[1]
}
}

let minOf2 = number => number[0] < number[1] ? number[0] : number[1];
// 析构赋值

调用

let minOf2 = ([a,b]) => a < b ? a : b
minOf2([1,2])
minOf2.call(null,[1,2])

使用现有 API

let x = 2
let y = 3
Math.min(x,y) // 只能接收参数
2

**⚠️注意:**JS 里唯一的特例:Math 是一个普通对象

var min = (numbers) =>{
if(numbers.length > 2){
console.log(numbers)
return min([numbers[0],min(numbers.slice(1))])
}else{
return Math.min.apply(null,numbers)
}
}

快速排序

阮一峰快排源码


DOM 操作

// <div id="test" class="red">demo</div>
let a = document.getElementById('test')
console.log("--a--")
console.log(a)
let b = document.getElementsByClassName('.red')
console.log("--b--")
console.log(b)
let c = document.getElementsByClassName('red')
console.log("--c--")
console.log(c)
let d = document.getElementsByClassName('red')[0]
console.log("--d--")
console.log(d)
let e = window.test
console.log("--e--")
console.log(e)
let f = document.querySelector('#test')
console.log("--f--")
console.log(f)
let g = document.querySelector('test')
console.log("--g--")
console.log(g)
let h = document.querySelectorAll('#test')
console.log("--h--")
console.log(h)
let i = document.querySelectorAll('#test')[0]
console.log("--i--")
console.log(i)

尝试 Dom 弹窗

        $(".OauthCard-header").click(
pop(d,2,3,4)
);
function pop (title,content,ok,cancel){
$('body').append(
'<div class="yhf-pop">' +
' <p class="yhf-pop-title">'+ title +'</p>'+
' <span class="yhf-pop-content">' + content +'</span>'+
' <div class="yhf-pop-btnItems">'+
' <p class="yhf-pop-btnItems-ok">' + ok + '</p>'+
' <p class="yhf-pop-btnItems-cancel">' + cancel + '</p>'+
' </div>'
)};

面试题

let a = 1
function fn1(){
function fn2(){
console.log(a)
}
function fn3(){
let a=3
fn2()
}
let a =2
return fn3
}

let fn = fn1()
fn()
2

//

let a = 1
function fn1(){
function fn3(){
let a =3
fn2()
}
let a =2
return fn3
}
function fn2(){
console.log(a)
}

let fn = fn1()
fn()
1

数组

let arr1 =[2,3,4]
let arr2=arr1
arr1[0]=15
arr2 // (3) [15, 3, 4]

arr1 = []
arr2
(3) [15, 3, 4]

return

function inc(n){
n++
}
let n =10
inc(n);
console.log(n) // 10

function inc(n){
return (++n)
}
inc(n) // 11

promise 的用途

  1. 创建 Promisereturn new Promise((resolve,reject)=>{})
  2. 使用Promise.prototype.then
  3. 使用Promise.all、race

哆啦A梦:https://codepen.io/minukang/details/VYeZoJ