一问就想不起来的问题,来看看?
1.js默认阻止时间冒泡的事件:
1) event.stopPropagation()阻止事件冒泡的方法,不让时间向document上蔓延,但是默认事件仍然会执行2) event.preventDefault()阻止默认事件的方法3) return false;会同时阻止事件冒泡也会阻止默认事件复制代码
2.逻辑代码,可以自己打印输出看看哦,答案在评论处
var a = [1,2];
var b = a.concat([3,4,[5,6]]);
1、请问数组b的长度是几?复制代码
var data = [];
for(var i = 0;i<3;i++){ data[i] = function(){console.log(i);}
}
2、请问data[0] = ?data[1] = ?data[2] = ?复制代码
var z = 10;
function foo(){console.log(z);
}
(function(funArg){var z = 20;funArg();
})(foo)
console.log(z); //3、z=?复制代码
function fact (num){ if(num<=1){ return 1}else{return num*arguments.callee(num-1)}
}
var anotherFact = fact;
fact =null
console.log(anotherFact(4));//4、(anotherFact(4)?
复制代码
3.这里遇到了一个我这个小白看不懂的地方:arguments.callee
- 首先,arguments是什么?
- arguments是函数调用时,创建的一个类似的数组但又不是数组的对象,并且它存储的是实际传递给函数的参数,并不局限于函数声明的参数列表。
所以这里的arguments.callee是实现计算阶乘函数的递归算法,但是访问 arguments 是个很昂贵的操作,因为它是个很大的对象,每次递归调用时都需要重新创建。影响现代浏览器的性能,还会影响闭包,谨慎使用。
4、call和Apply的区别:
- 每个函数都包含非继承而来的方法:call()和apply()
- 定义:
apply:调用一个对象的一个方法,用另一个对象替换当前对象。
call:调用一个对象的一个方法,用另一个对象替换当前对象。
- 相同点:
- 都是在特定的作用域中调用函数,等于设置函数体内的this对象的值,以扩充函数运行的作用域。
- 区别:
- apply():最多只能有两个参数:函数运行的this对象和参数数组。
- 如果argArray不是一个有效数组或不是arguments对象,那么将导致一个
TypeError,如果没有提供argArray和thisObj任何一个参数,那么Global对象将用作thisObj。
- 如果argArray不是一个有效数组或不是arguments对象,那么将导致一个
- apply():最多只能有两个参数:函数运行的this对象和参数数组。
语法:apply([thisObj [,argArray] ]);
复制代码
- call():第一个参数和apply()方法的一样,但是传递给函数的参数必须列举出来。
- call方法可以用来代替另一个对象调用一个方法,call方法可以将一个函数的对象上下文从初始的上下文改变为thisObj指定的新对象,如果没有提供thisObj参数,那么Global对象被用于thisObj。
语法:call([thisObject[,arg1 [,arg2 [,...,argn]]]]);
复制代码
5.浏览器的事件流:
- 事件冒泡
- 事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点
- 事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点
- 事件捕获
- 事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。事件捕获的用意在于在事件到达预定目标之前就捕获它
- 事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。事件捕获的用意在于在事件到达预定目标之前就捕获它
- DOM事件流
- 处于捕获阶段往事件冒泡阶段之间
6、提高web页面性能
- 减少http请求:
- 图片加载也会产品http请求,所以建议尽量减少使用网络图片,如果图片比较多, 可以使用字体图标
- 使用CDN地址:
- CDN(内容发布网络)是一组分布在多个不同地理位置的Web服务器,用于更加有效地向用户发布内容。在优化性能时,向特定用户发布内容的服务器的选择基于对网络慕课拥堵的测量。
- CDN还可以进行数据备份、扩展存储能力,进行缓存,同时有助于缓和Web流量峰值压力。
- 将样式表放在头部
- 减少页面首屏出现的时间,使页面内容逐步呈现,改善用户体验,防止“白屏”。能够尽快显示内容,为用户提供可视化的回馈,这对网速慢的用户来说是很重要的
- 将脚本放在底部
- 和样式表相同,放在底部会减少首屏出现的时间。js的下载和执行会阻塞Dom树的构建(严谨地说是中断了Dom树的更新),所以script标签放在首屏范围内的HTML代码段里会截断首屏的内容
- 避免CSS表达式
- CSS表达式是动态设置CSS属性的一种强大并且危险的方式,它受到了IE5以及之后版本、IE8之前版本的支持。
- 使用外部JavaScript和CSS
- 内联脚本或者样式可以减少HTTP请求,按理来说可以提高页面加载的速度。然而在实际情况中,当脚本或者样式是从外部引入的文件,浏览器就有可能缓存它们,从而在以后加载的时候能够直接使用缓存,而HTML文档的大小减小,从而提高加载速度。
7.HTTPS和HTTP的区别:
- 定义:
- https:是以安全为目标的HTTP的通道,简单讲是HTTP的安全版。HTTPS的安全是以SSL为基础,因此加密的详细内容就需要SSL。
- http:超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
- 区别:
- https:https协议需要到ca申请证书,一般免费证书很少,需要交费。https 则是具有安全性的ssl加密传输协议。
- http:http是超文本传输协议,信息是明文传输。
一问就想不起来的问题,来看看?相关推荐
- 面试官问你想找什么工作_找工作时如何面试面试官
面试官问你想找什么工作 在技术面试中要问的十二个问题 (Twelve questions to ask at tech interviews) I've just come off six wee ...
- 写一个循环,不断的问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,最终用户输入q退出时,打印购物车里的商品列表
写一个循环,不断的问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,最终用户输入q退出时,打印购物车里的商品列表 写一个循环,不断的问用户想买什么,用户选择一个商品编号,就把对应的商 ...
- 【装逼利器效率软件】一张图问你想不想用Launchy
简述:Launchy博客园很多文章,长篇大论文字太多. 一张图问你想不想用? 长话多说: 一.设置Launchy扫描目录,安装后会默认,个人推荐自定义目录比较好 二.自行建立快捷方式别名文件夹,存放各 ...
- 客户被绑,蒙眼,惊问:“想干什么?” 对方不语,鞭笞之,客户求饶:“别打,要钱?” 又一鞭,“十万够不?” 又一鞭,“一百万?” 又一鞭。客户崩溃:“你们TMD到底要啥?” “要什么?......
1. 客户被绑,蒙眼,惊问:"想干什么?" 对方不语,鞭笞之,客户求饶:"别打,要钱?" 又一鞭,"十万够不?" ...
- 大四生破解数学难题 丘成桐问是否想去清华深造
韶关学院大四学生王骁威. 破解世界级数论猜想大学生:中国缺少静心做学问的人 学校正在为他安排破格保研 未来想做图书馆管理员研究学问 韶关学院刚上大四的学生王骁威,否定了数论界多年未解的猜想--&q ...
- 专科程序员吐槽:学历是硬伤!问:想进大厂试试必须学历够格么?
学历在IT这块慢慢被越来越看重了!先不说大厂,他们对于学历肯定是差的相当严的,除非你工作能力特别突出或许有那么可能性!不过这也是极少数的,毕竟有学历又有能力的人在大厂还是有的.大厂外,我记得在前几年, ...
- 人生四问,想通后面朝大海春暖花开
注意,你现在看到的这篇文章是半成品,它等你看到文末,参与进来,一起完成. 人生下来并没什么意义,意义是成长过程中慢慢发展出来的. 当孙悟空踏上取经路 当丑小鸭发现自己是白天鹅 当亚瑟决定抢夺王位维护海 ...
- 015-请问如果想进行bug的测评,怎么去评测bug?
Bug的priority()和severity()是两个重要属性,通常人员在提交bug的时候,只定义severity,而将priority交给leader定义,通常bug管理中,severity分为四 ...
- 每日一皮:客户被绑,蒙眼,惊问 “想干什么?”
客户被绑,蒙眼,惊问:"想干什么?" 对方不语,鞭笞之,客户求饶:"别打,要钱?" 又一鞭,"十万够不?" 又一鞭,"一百万?&q ...
最新文章
- java 中调用 Matlab 的函数
- AB1601 烧写程序后上电后无反应
- SpringMVC中@GetMapping和@RequestMapping的区别
- Kafka 入门 and kafka+logstash 实战应用
- X265-线程池-1
- mysql 4字节utf8_MySQL 4字节utf8字符更新失败一例
- sql中排序序号_SQL 和 SPL 的有序运算对比
- sigmoid函数求导_交叉熵损失函数的求导(Logistic回归)
- 一般试卷的纸张大小是多少_国际A4纸尺寸大小是多少?标准A4纸像素分辨率换算方法...
- 《构建之法》阅读笔记(三)
- HTTP的REST服务简介
- 深入浅出的etl作业调度工具taskctl
- 教你如何选择弱电工程中使用的交换机?
- Python数据获取及分析 获取豆瓣电影 评论 星级 时间
- JAVA鸡汤------一个牛人给java初学者的建议
- nacos get changed dataId error, code: 403
- 新电脑小喇叭一直是红❌的解决方法
- 北鲲云联合珠海中科先进技术研究院推出代算服务
- 喝干红葡萄酒的十大好处
- NVIDIA显卡驱动及CUDA相关安装流程(包括多版本cuda切换)
热门文章
- [置顶] PHP如何扩展和如何在linux底层对php扩展?
- HDU 2018 母牛的故事
- 【日记】一次程序调优发现的同步IO写的问题,切记
- placeholder文字颜色与是否显示兼容性
- 修改AspNetSqlMembershipProvider的密码规则
- I​n​n​o​ ​s​e​t​u​p​ ​常​用​修​改​技​巧
- 2013.11.13
- 【翻译】安卓新播放器EXOplayer介绍
- AI需求强劲 AI芯片市场规模有望达到405亿
- 7.5. Zend Optimizer