https://space.bilibili.com/327247876?from=search&seid=10549288585307610679
目录
一 整数翻转
二 const let var
三 this
四 闭包
五 BFC
一 整数翻转
思路:
整数(不可变,没有方法) →(toString())字符串→(split())数组(reverse())→(join())字符串→(parseInt())整数
注意的点:数字正负、数字是否过大或过小
用到的函数:
Math.pow() Math.sign() Math.abs()
var reverse = function(x){
var min = Math.pow(-2,31)
var max = Math.pow(2,31)-1
var sign = Math.sign(x)
x = Math.abs(x)
var result = x.toString().split("").reverse().join("")
x = parseInt(result)*sign
if(x>max) return 0;
if(x<min) return 0;
return x;
}
效率更高内存占用更少的方法
var reverse = function(x){
var min = Math.pow(-2,31)
var max = Math.pow(2,31)-1
var sign = Math.sign(x)
var result = 0
var reminder
x = Math.abs(x)
while( x > 0 ){
reminder = x % 10
x = (x - reminder)/10
result = result*10 + reminder
}
result *= sign
if(x>max) return 0;
if(x<min) return 0;
console.log("456456"+result)
return result;
}
var const let
https://www.bilibili.com/video/BV1qk4y1k75W
var可以重复定义 ,let不行会报错 ,const不仅不能重复定义,也不能修改。var会进行声明提升,let不会
var a=1
var a=2
虽然const本身不允许修改,但可以和数组或对象结合,这样就可以达到修改const值的效果了
const aa=[]
aa[0]="abc"
aa[0]="as"
aa[1]="dfg"

三 this
有三种绑定:隐式绑定,硬绑定和构造函数绑定
隐式绑定,就是直接在对象内部用this
硬绑定就是用call和apply[有方法的对象.方法.call(没方法的的对象)]
var fruit={
name:'fruit',
getName:function(){
console.log(this.name)
}
}
var apple={
name:'apple'
}
fruit.getName.call(apple) //"apple"
构造函数绑定 //像java的构造函数
function fruit(name){
this.name=name
this.getName= function(){
console.log(this.name)
}
}
var apple = new fruit('apple')
apple.satName() //"apple"
题目


总结
谁.方法,那么this就是谁
四 闭包
闭包是指有权访问另一个函数作用域中变量的函数。
如果定义变量去接收一个闭包函数,要记得使用完后销毁(null)
例题


闭包的作用
https://www.cnblogs.com/gg-qq/p/11399152.html
BFC 块级格式化上下文
如何创建BFC
1、float的值不是none。
2、position的值不是static或者relative。
3、display的值是inline-block、table-cell、flex、table-caption或者inline-flex
4、overflow的值不是visible
https://blog.csdn.net/sinat_36422236/article/details/88763187
BFC的布局规则
内部的Box会在垂直方向,一个接一个地放置。
Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠。
每个盒子(块盒与行盒)的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
BFC的区域不会与float box重叠。
BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
计算BFC的高度时,浮动元素也参与计算。
问:浮动之后为什么父元素背景会不见?
答:float浮动会使父元素高度塌陷,父级元素不能被撑开,所以导致CSS背景不能显示。
解决方法:https://blog.csdn.net/hua_ban_yu/article/details/80318994
1.对父元素设置高度;
2.对父元素设置 overflow:hidden清除浮动;
3.把父元素也设置为float浮动;
4.结束标签前加入代码:<div style="clear:both"></div>
补充
BFC就是块级的作用域。GFC就是grid作用域。IFC就是内联作用域。FFC就是flex作用域