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");
}}
抽象编程
三段推论
逻辑与直觉
结构化编程
- 顺序
- if...else
- for 循环
流程与伪代码
完全依靠大脑,判断流程和伪代码流程
数据结构
描述的是数据与数据之间的关系和结构,如:两个男性,父子..朋友..体重都 70kg..等。
数据结构 = 数据形式 + 操作(增删改查)
- 顺序数据
- 无序数据
- 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 的用途
- 创建 Promise
return new Promise((resolve,reject)=>{})
- 使用Promise.prototype.then
- 使用Promise.all、race