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对象的函数,获取当前函数的主体,在哪个函数中运行,就代表哪个函数,一般用于匿名函数中。

所以这里的arguments.callee是实现计算阶乘函数的递归算法,但是访问 arguments 是个很昂贵的操作,因为它是个很大的对象,每次递归调用时都需要重新创建。影响现代浏览器的性能,还会影响闭包,谨慎使用。

4、call和Apply的区别:

  • 每个函数都包含非继承而来的方法:call()和apply()
  • 定义:
    • apply:调用一个对象的一个方法,用另一个对象替换当前对象。

    • call:调用一个对象的一个方法,用另一个对象替换当前对象。

  • 相同点:
    • 都是在特定的作用域中调用函数,等于设置函数体内的this对象的值,以扩充函数运行的作用域
  • 区别:
    • apply():最多只能有两个参数:函数运行的this对象和参数数组。

      • 如果argArray不是一个有效数组或不是arguments对象,那么将导致一个
        TypeError,如果没有提供argArray和thisObj任何一个参数,那么Global对象将用作thisObj。
      语法:apply([thisObj [,argArray] ]);
复制代码
  • call():第一个参数和apply()方法的一样,但是传递给函数的参数必须列举出来。

    • call方法可以用来代替另一个对象调用一个方法,call方法可以将一个函数的对象上下文从初始的上下文改变为thisObj指定的新对象,如果没有提供thisObj参数,那么Global对象被用于thisObj。
      语法:call([thisObject[,arg1 [,arg2 [,...,argn]]]]);
复制代码

5.浏览器的事件流:

  1. 事件冒泡

    1. 事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点
  2. 事件捕获
    1. 事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。事件捕获的用意在于在事件到达预定目标之前就捕获它
  3. DOM事件流
    1. 处于捕获阶段往事件冒泡阶段之间

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是超文本传输协议,信息是明文传输。

一问就想不起来的问题,来看看?相关推荐

  1. 面试官问你想找什么工作_找工作时如何面试面试官

    面试官问你想找什么工作 在技​​术面试中要问的十二个问题 (Twelve questions to ask at tech interviews) I've just come off six wee ...

  2. 写一个循环,不断的问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,最终用户输入q退出时,打印购物车里的商品列表

    写一个循环,不断的问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,最终用户输入q退出时,打印购物车里的商品列表 写一个循环,不断的问用户想买什么,用户选择一个商品编号,就把对应的商 ...

  3. 【装逼利器效率软件】一张图问你想不想用Launchy

    简述:Launchy博客园很多文章,长篇大论文字太多. 一张图问你想不想用? 长话多说: 一.设置Launchy扫描目录,安装后会默认,个人推荐自定义目录比较好 二.自行建立快捷方式别名文件夹,存放各 ...

  4. 客户被绑,蒙眼,惊问:“想干什么?” 对方不语,鞭笞之,客户求饶:“别打,要钱?” 又一鞭,“十万够不?” 又一鞭,“一百万?” 又一鞭。客户崩溃:“你们TMD到底要啥?” “要什么?......

    1.  客户被绑,蒙眼,惊问:"想干什么?"      对方不语,鞭笞之,客户求饶:"别打,要钱?"      又一鞭,"十万够不?"    ...

  5. 大四生破解数学难题 丘成桐问是否想去清华深造

    韶关学院大四学生王骁威. 破解世界级数论猜想大学生:中国缺少静心做学问的人   学校正在为他安排破格保研 未来想做图书馆管理员研究学问 韶关学院刚上大四的学生王骁威,否定了数论界多年未解的猜想--&q ...

  6. 专科程序员吐槽:学历是硬伤!问:想进大厂试试必须学历够格么?

    学历在IT这块慢慢被越来越看重了!先不说大厂,他们对于学历肯定是差的相当严的,除非你工作能力特别突出或许有那么可能性!不过这也是极少数的,毕竟有学历又有能力的人在大厂还是有的.大厂外,我记得在前几年, ...

  7. 人生四问,想通后面朝大海春暖花开

    注意,你现在看到的这篇文章是半成品,它等你看到文末,参与进来,一起完成. 人生下来并没什么意义,意义是成长过程中慢慢发展出来的. 当孙悟空踏上取经路 当丑小鸭发现自己是白天鹅 当亚瑟决定抢夺王位维护海 ...

  8. 015-请问如果想进行bug的测评,怎么去评测bug?

    Bug的priority()和severity()是两个重要属性,通常人员在提交bug的时候,只定义severity,而将priority交给leader定义,通常bug管理中,severity分为四 ...

  9. 每日一皮:客户被绑,蒙眼,惊问 “想干什么?”

    客户被绑,蒙眼,惊问:"想干什么?" 对方不语,鞭笞之,客户求饶:"别打,要钱?" 又一鞭,"十万够不?" 又一鞭,"一百万?&q ...

最新文章

  1. java 中调用 Matlab 的函数
  2. AB1601 烧写程序后上电后无反应
  3. SpringMVC中@GetMapping和@RequestMapping的区别
  4. Kafka 入门 and kafka+logstash 实战应用
  5. X265-线程池-1
  6. mysql 4字节utf8_MySQL 4字节utf8字符更新失败一例
  7. sql中排序序号_SQL 和 SPL 的有序运算对比
  8. sigmoid函数求导_交叉熵损失函数的求导(Logistic回归)
  9. 一般试卷的纸张大小是多少_国际A4纸尺寸大小是多少?标准A4纸像素分辨率换算方法...
  10. 《构建之法》阅读笔记(三)
  11. HTTP的REST服务简介
  12. 深入浅出的etl作业调度工具taskctl
  13. 教你如何选择弱电工程中使用的交换机?
  14. Python数据获取及分析 获取豆瓣电影 评论 星级 时间
  15. JAVA鸡汤------一个牛人给java初学者的建议
  16. nacos get changed dataId error, code: 403
  17. 新电脑小喇叭一直是红❌的解决方法
  18. 北鲲云联合珠海中科先进技术研究院推出代算服务
  19. 喝干红葡萄酒的十大好处
  20. NVIDIA显卡驱动及CUDA相关安装流程(包括多版本cuda切换)

热门文章

  1. [置顶] PHP如何扩展和如何在linux底层对php扩展?
  2. HDU 2018 母牛的故事
  3. 【日记】一次程序调优发现的同步IO写的问题,切记
  4. placeholder文字颜色与是否显示兼容性
  5. 修改AspNetSqlMembershipProvider的密码规则
  6. I​n​n​o​ ​s​e​t​u​p​ ​常​用​修​改​技​巧
  7. 2013.11.13
  8. 【翻译】安卓新播放器EXOplayer介绍
  9. AI需求强劲 AI芯片市场规模有望达到405亿
  10. 7.5. Zend Optimizer