转载

JavaScript基础知识梳理,你能回答几道题?

在学习JavaScript的时候,总是这里学一点,那里学一点,很的很零星,很杂,没有很系统的去学习,感觉好像JavaScript的知识点都了解了,但是真正要说起来,又不知道从何说起!

最深刻的体会就是找工作面试的时候,面试官问你一些JavaScript的基础知识,你貌似知道是怎么回事,但是就是不知道怎么去表达,或者是某个知识点知其然不知其所以然,不知道大家会不会有这样的体会!

所以不管出于什么目的,是去陈旧新也好,是从学JavaScript也好,还是说做备忘也好,我们大家一起来梳理一下JavaScript的基础知识点,我相信,要是这些知识点你都会了,而且都记住了,JavaScript的学习就更上一个层次了,我会不定期将“参考答案”发布出来,供大家来学习参考,也希望不管是新手还是大神,能够多贴代码,多贴见解,供大家一起学习,我只是抛砖引玉而已,在此不胜感激!(特别鸣谢某培训学校的JavaScript知识点梳理参考,下面的并非是我想的,我只是做了整理):

  1. JavaScript运行在html中,引用有几种方式?
  2. JavaScript通常写在页面的什么位置?
  3. 改变js加载顺序的方法有什么?
  4. type属性都有哪些常用的值?代表什么意思?
  5. 除了type属性还有其他的什么属性?
  6. js中常用的输出方式?
  7. 命名规范涉及的关键字和保留字都有哪些?
  8. 如何定义变量?
  9. js变量有什么特点?
  10. js中的数据类型有哪些?
  11. 如何检测这些数据类型?
  12. number数据类型中的一些知识点?NaN?isNaN?
  13. 将其他类型转化成number类型的方法有哪些?
  14. null和undefined的区别?都是什么意思?
  15. js常用的报错都有哪些?
  16. 基本数据类型和引用数据类型的区别?
  17. 不同数据类型之间的转化关系?
  18. 区分(+连接的字符串拼接都是什么情况?判断不同数据类型是否相等的情况下都是什么情况?[] {} 0 NaN “” null undefined 都是需要特殊重点记忆的)
  19. js中常用的语法语句都有哪些(三个判断和三个循环)?
  20. 判断语句都有什么?怎么用?每一种语法中的细节注意点都是什么?每一种判断应用于什么情况?= = 和 = = =的区别是什么?
  21. 三个循环语句都是什么?如何来用?每一种循环的特点和作用是什么?for循环4步和里面的break、continue怎么用?for in是用来做什么的?里面有什么需要注意的?while循环怎么用?三个循环的区别是什么?i++和++i的区别?
  22. object创建的方式有几种?
  23. object如何修改,增加,删除,获取属性名和属性值(有几种方式)?
  24. object中常用的内置类都有哪些?
  25. 如何创建数组?
  26. 如何获取数组的某一项?
  27. 有一个和数组类似的类叫做类数组是怎么一回事?
  28. 数组中常用的方法都有哪些?每一个方法都是干什么的?需要传递什么样的参数?返回的结果是什么?原有的数组是不是改变了?该方法有哪些不足?
  29. 自己用代码实现 数组排序,数组去重,两个数组的交差并补集,a数组中有而b数组中没有等等?
  30. 函数中涉及的知识点比较多,如何定义函数?如何执行函数?什么叫做形参?为什么要用形参?什么是return?function中return的注意项?为什么要用return?arguments是什么?如何获取里面存储的数据?类数据的形式和常规操作?arguments中自己特殊的属性是什么,干什么用的?如何的检测执行函数时是否传递了参数?以及在方法中可以用什么样的办法判断传入参数的类型和是否传递?
  31. 函数执行的时候会形成一个私有的作用域,来保护里面的变量不受外界的干扰(作用域这块是怎么回事)?
  32. 如何给元素绑定事件?
  33. 匿名函数:函数表达式、常见闭包形式
  34. 获取页面上DOM元素的几个方法和方法是如何的使用的?哪些方法不兼容?方法使用过程中在不同浏览器中的注意细节点都是什么?
  35. 哪些获取的是单个?哪些获取的是对象集合(类数组)?对于集合的话我们有几种方式获取某个元素?
  36. DOM中的节点都包含哪些类型?每一种类型的nodeType和nodeName和nodeValue是什么?有什么作用?
  37. 通过哪些属性可以获取页面中的节点?都是如何使用的?兼容性怎么样?在不同浏览器下有哪些需要注意的?
  38. DOM 创建、修改、删除、替换、复制、设置自定义属性(获取、删除) 这些操作都有哪些方法?这些方法如何的使用?需要注意的事项有哪些?

需要熟悉掌握的案例:

  1. 写一个求和的方法sumFn,不管传递的参数有什么,都能将最终的和算出来,并且返回给函数外部使用。(要求:一个参数都不传默认结果为0,对于传递的非正常数字的参数不与累加操作);
  2. 实现在页面中输出99乘法表。(要求:以每三行为一组,实现隔行变色(颜色为白,红,黄(也可自己定义)),鼠标滑过每一行,行背景颜色变为蓝色,鼠标离开又恢复原来的颜色),隔行变色的效果需要用if和switch两种判断方式都能实现;
  3. 实现一个基础选项卡页面效果(仿照市面上的真实效果做)。(要求:用自定义属性和闭包的方式实现事件的绑定,选项卡的原理思想要牢牢的掌握);
  4. 写一个方法实现数组的排序。(要求:执行方法,传递一个数组,返回排序好的新数组(原数组不变),可以用冒泡排序,插入排序,选择排序,快速排序各写一个);
  5. 写一个方法实现数组的去重。(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考);
  6. 编写一个方法,实现从n-m个数中随机选出一个整数,要求:传递的参数不足两个或者不是有效数字,返回[0-1]之间的随机数,需要解决n和m两个数大小问题,如果m<n,两个参数的值进行交换;
  7. 在页面中输出当前客户端时间(2015年1月1日星期一10:10:10这样的格式),每过一秒中页面不刷新,但是时间自动更新(用两种定时器方法都可以实现),鼠标点击时间,如果原先运动则停止,如果停止则继续运动;

看来上述的知识点,是不是有点觉得好简单的赶脚,但是真正回答起来,还真是不知道怎么回答好,如果你也这么感觉,那你就来对了,希望你能踊跃的贴出自己的见解和代码,我们一起来学习探讨,也希望大牛们能指点一下我们这些菜鸟,我会将大牛们比较经典的代码段贴出来供大家学习,当然也要特别鸣谢!

注意:贴出来的代码段,如果复杂的话,可以提供链接到你自己的博客里面,或者是可以复制过来直接运行的代码。

正文到此结束
Loading...