语义"abc30def40kkk50"如何取数字出来
// 用replace let a = "abc30def40kkk50".replace(/[a-zA-Z]+/g," ") console.log(a) //" 30 40 50" a.split(" ") //["", "30", "40", "50"] // 用split a = "abc30def40kkk50".split(/[a-zA-Z]+/) //如果用[a-zA-Z]*的话,输出的是["", "3", "0", "4", "0", "5", "0"] console.log(a) // ["", "30", "40", "50"]
margin合并的情况 外边距重叠(第三个情况没看懂)
- 同一层相邻元素之间
- 没有内容将父元素和后代元素分开
- 空的块级元素
常用的浏览器本地存储方案 cookie、sessionStorage、localStorage(还跟session对比)
什么是重排重绘,重排的属性有哪些 来源
- 触发重绘的操作:
vidibility
、outline
、背景色等属性的改变- 触发重排的操作
页面第一次渲染 在页面发生首次渲染的时候,所有组件都要进行首次布局,这是开销最大的一次重排。
浏览器窗口尺寸改变
元素位置和尺寸发生改变的时候
新增和删除可见元素
内容发生改变(文字数量或图片大小等等)
元素字体大小变化。
激活CSS伪类(例如:
:hover
)。设置style属性
查询某些属性或调用某些方法。比如说:offsetTop、offsetLeft、 offsetWidth、offsetHeight、scrollTop、scrollLeft、scrollWidth、scrollHeight、clientTop、clientLeft、clientWidth、clientHeight
哪些措施: (其余看不懂)
将
position
属性设置为absolute
或fixed。
重排开销比较小,不用考虑它对其他元素的影响可以将要显示的图片拼成巨大的图片,利用图片位置进行控制显示
聊天气泡
CSS3画三角形和对话框 Hello Everyone! I'm Panda.获取元素指定属性值的方法
设置属性 .setAttribute("属性","值") 获取属性 .getAttribute("属性")
跨域CORS
//服务器大概长这个样子 localhost:90加载的是index.html文件 index.html 有
Hello!
localhost:91代码大概是 app2.get("/", function(req,res){ res.send("你好") }) app2.listen(91)试图跨域
// 现在在90端口对应的index.html里添加一段代码试图跨域(90端口请求91端口的数据)
Hello!
解决方法(前两个方法、第三个方法nginx)
方法一:在接口的服务端修改响应头
//在这个例子中,修改的是91端口的响应头 app2.get("/", function(req,res){ res.header("Access-Control-Allow-Origin","*") res.send("你好") }) app2.listen(91)
方法二:jsonp 通过href或src去请求脚本不存在跨域问题,只有用ajax请求才存在跨域问题
//对91端口的服务器进行修改 app2.get("/", function(req,res){ //先在请求中设置一个请求函数 var funcname = req.query.callback //callback是传入的函数名 //需要返回的数据内容作为直接调用函数 res.send(funcname + "('你好')") //格式相当于f('你好') }) app2.listen(91)
//对90端口对用的index.html进行修改,
Hello!
顺序理一下:90端口请求的是91的数据。先在90端口注册一个函数,通过“查询字符串”的方式传递参数,参数名为callback,这与91端口的服务器接收到的参数名是一样的。91端口的 funcname = req.query.callback 获取到了从90端口传递过去的函数,然后返回 funcname + "('你好')" ,返回到90端口页面引用91端口的