021、定义函数的几种方式
 
1、关键字函数:function fnName(){};
 
2、字面量函数:var fn = function(){};
 
3、构造函数:var fn = new Function()
 
022、函数的作用
 
1、减少代码的编写(代码重复利用)
 
2、隐藏处理细节,便于今后的修改和维护
 
3、控制执行时机
 
023、谈谈你对参数的理解
 
1、参数分为:形参和实参
 
2、有了参数以后可以使函数变的更加灵活
 
3、形参和实参要一一对应
 
4、如果对应的形参没有传值,那么值是undefined
 
 
024、什么是作用域链?
 
1、简单说就是作用域集合  当前作用域 -> 父级作用域 -> ... -> 全局作用域   形成的作用域链条
 
全局作用域的变量和方法都可以进行调用
 
局部的变量和方法只能局部进行调用( 除闭包外 )
 
局部可以访问全局的变量和方法
 
025、console.log与console.dir的区别
 
console.log()可以取代alert()或document.write(),在网页脚本中使用console.log()时,会在浏览器控制台打印出信息。
 
console.dir()可以显示一个对象所有的属性和方法。
 
026、谈谈你对arguments的了解
 
1、函数内部自带的一个对象
 
2、存储的是所有的实参
 
3、可以使用[]及下标访问arguments中的内容   arguments[0]  访问第一个实参
 
4、可以使用 arguments.length 确定传入实参的个数
 
5、最常用的用途: 判断传入参数的个数(根据参数个数做不同的事情)
 
 
027、请说一下js的编译和执行
 
1、js的预编译:
     a、把var 和 function 定义的变量提升到script的最上方
     b、赋值语句不会被提升,哪怕等号后面是一个function
2、js执行:代码从上往下执行
 
028、简单的阐述一下js的变量声明提升
 
变量声明和函数声明从他们代码中出现的位置被移动到执行环境的顶部,这个过程就叫做提升  只有声明操作会被提升,赋值和逻辑操作会被留在原地等待执行
 
Js编译器会把变量声明看成两个部分分别是声明操作(var a)和赋值操作(a=2)
 
背会!!!!递归与循环的区别
 
递归算法:
 
优点:代码简洁、清晰,并且容易验证正确性。
 
缺点:
1、它的运行需要较多次数的函数调用,如果调用层数比较深,每次都要创建新的变量,需要增加额外的堆栈处理,会对执行效率有一定影响,占用过多的内存资源。
2、递归算法解题的运行效率较低。在递归调用的过程中系统为每一层的返回点、局部变量等开辟了栈来储存。递归次数过多容易造成栈溢出等
 
注意:递归就是在过程或函数里调用自身;使用递归策略时要注意的几个条件
1、必须有一个明确的递归结束条件,称为递归出口。
2、递归需要有边界条件、递归前进段和递归返回段。
3、当边界条件不满足时,递归前进。当边界条件满足时,递归返回。
 
循环算法:
 
优点:速度快,结构简单。
 
缺点:并不能解决所有的问题。有的问题适合使用递归而不是循环。如果使用循环并不困难的话,最好使用循环
 
029、创建数组的几种方式
 
三种方式:
1、var arr = new Array();
2、var arr = Array
3、var arr = [];
 
030、如果判断一个对象是不是另一个对象创建出来的
 
数组.instanceof Array

原生js大总结三的更多相关文章

  1. 原生js大总结九

    81.ES6的Symbol的作用是什么?   ES6引入了一种新的原始数据类型Symbol,表示独一无二的值   82.ES6中字符串和数组新增了那些方法   字符串       1.字符串模板    ...

  2. 原生js大总结十

    91.ajax的优点     a.提高运行效率   b.提高用户体验,让多件事情同时发生   c.在不刷新页面的情况下可以对局部数据进行加载和刷新       92.ajax请求的流程   1.创建通 ...

  3. 原生js大总结二

    011.if语句的优化   1.把次数多的条件和执行结果放到最前面   2.减少第一次无用的判断,可以用嵌套判断   3.判断语句禁止出现三次嵌套     012.谈谈你对switch的理解   1. ...

  4. 原生js大总结八

    071.如何组织事件冒泡   利用事件对象属性:stopPropagation 和 cancelBubble   stopPropagetion是一个方法:e.stopPropagetion();   ...

  5. 原生js大总结十一

    101.请简述prototype.__proto__ constructor三者的关系   1.prototype:     每一个函数都有一个prototype这个属性,而这个属性指向一个对象,这个 ...

  6. 原生js大总结六

    051.如何打印当前浏览器的版本等信息   navigator.userAgent   返回包含浏览器版本等信息的字符串 ,常用于判断浏览器版本及使用设备(PC或者移动端   052 .在浏览器地址栏 ...

  7. 原生js大总结七

    061.如何获取父级节点.上一个子级节点.下一个子级节点    nextElementSibling  后一个兄弟元素  (如果没有是null)    previousElementSibling   ...

  8. 原生js大总结四

    031.数组常用的一些方法   1.push: 在数组最后添加一个或者多个元素,返回添加后数组的长度   2.pop: 从数组最后取出一个元素,返回的是数组的最后一个元素(取出的元素)   3.uns ...

  9. 原生js大总结五

    041.在js中如何用方法将10进制的字符转换成16进制和8进制   数字.toString(16) 数字.toString(8)     042.如何创建时间对象   new Date()   04 ...

随机推荐

  1. 简述SQL with(unlock)与with(readpast)

    所有Select加 With (NoLock)解决阻塞死锁,在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAS ...

  2. 干货分享 -- Math

    昼猫笔记 JavaScript -- Math Math也是JS的内置对象,但是它不是一个构造函数,它属于一个工具类不用创建对象,它封装了数学运算相关的属性和方法,今天就来写下常用的函数[API(ap ...

  3. NOIP愤怒的小鸟

    愤怒的小鸟 Description: 给你\(n<=18\)个小猪,发射的小鸟轨迹为抛物线,求最小用多少个小鸟可以将小猪全部干掉 看到n很小,我想到了搜索,于是我用\(dfs\)枚举出,每个抛物 ...

  4. Deepin for Linux 下串口调试交换机

    最近因工作需要,在淘宝购买了一条宇泰的串口线:USB to RS232 之所以选择这款,主要是它支持 Windows.Linux.mac Linux机是Deepin for Linux,算是国产比较好 ...

  5. ACM-康托展开+预处理BFS之魔板——hdu1430

    魔板 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  6. 数据库优化技巧之in和not in

    在编写SQL语句时,假设要实现一张表有而另外一张表没有的数据时. 通常第一直觉的写法是: select * from table1 where table1.id not in(select id f ...

  7. 解决 php7 cli 模式下中文乱码的两中方法

    解决 php7 cli 模式下中文乱码的两中方法1. 给PHP文件开头加上 exec('chcp 936'); 然后把该文件以 ANSI 格式编码2. 在 php.ini 中设置 default_ch ...

  8. php中str_repeat函数

    php中str_repeat函数 一.作用 用于repeat str 二.实例:输出菱形 代码: <!DOCTYPE html> <html lang="en"& ...

  9. 41.Node.js使用cnpm

    转自:http://www.runoob.com/nodejs/nodejs-tutorial.html npm是Node.js中维护第三方库.模块的工具,但是国外的速度很悲剧,这里有一个中国的源cn ...

  10. Qwt库的一个使用注意事项

    作者:朱金灿 来源:http://blog.csdn.net/clever101 一般debug版本的程序链接release版本的库是没有问题的.今天使用debug版本程序链接release版本的qw ...