zoukankan      html  css  js  c++  java
  • 【前端笔试题一(待续)】

       最近各大公司的实习招聘开始了,上学期的实习辞职到现在也快一个月了。这一月似乎没干什么似得,毕设开题也没弄,被老板抓着做实验,各种闹心的事。这月重新在看《JavaScript高级程序设计》,实习半年多都在做PHP,各种杂活,前端的知识本来就不好,更是忘了一大堆。笔试阿里的实习的时候,完全傻眼了。。。还是好好看看基础知识吧。最近有关注各个实习的笔试题,都是看完了然后就忘了,想想还是记录下来吧。为即将来临的找工作做做准备。

    一、(function(){})();和(function(){}())每个括号的用途和区别。

          首先第一种形式是我们比较常见的,在闭包中我们会经常用的。称之为自执行匿名函数,也就是说我们创建了一个匿名函数,然后立即调用了它。

          先来看一个函数定义和函数表达式的区别:

        函数定义:function FunctionName([.....]){FunctionBody}

        函数表达式:function [FunctionName]([....]){FunctionBody}

      可以看到这两个形式非常的像,区别就是函数表达式可以省略函数名。在JS中,如果一条语句是以function 开始,那么就会被解释为函数定义,函数定义是不能紧跟着()被执行的。应该如下:

      var someFunction = function(){};  //定义函数

      someFunction();  //调用函数

      那么我们的匿名函数要怎样定义后立即调用执行呢。这就是我们见的第一种形式,在前面加个(function(){}),这里就会将函数定义转换成函数表达式,函数表达式就可以后面跟着圆括号立即执行了。

      好了,知道它的意思了,我们就可以很简单的知道各个括号的用途了。

      function();这个括号是函数的参数列表。

      (function(){});这个括号就是我们说的将一个函数定义转换为函数表达式。

      (function(){})();这个括号就是立即执行这个函数。因为JS没有块级作用域的概念,所以这个函数经常用来模仿块级作用域。函数体内的变量在函数执行完之后会立马被销毁掉。看个例子:  

    function test(){
    	for(var i = 0; i < 10; ++i){
    
    	}
    	alert(i);//10
    }
    

      

    function test(){
    	(function(){
    		for(var i = 0; i < 10; ++i){
    
    		}
    	})();
    	alert(i);//Error:i is not defined!
    }
    

      第二种写法其实和第一种写法最终效果是一样的,也是自执行匿名函数。这种是模块模式的写法。

    二、How would you mark this work? add(2,5);//7  add(2)(5);//7

    function add(a, b){
    	var temp = function(b){
    		return a + b;
    	};
    
    	if(typeof b == "undefined"){
    		return temp;
    	} else {
    		return temp(b);
    	}
    }
    console.log(add(2,5)); //7
    console.log(add(2)(5));  //7
    

      

  • 相关阅读:
    Node Sass could not find a binding for your current environment : Node.js 8.x -SpiritMark
    SpringBoot从入门到精通教程(八)
    注解 @CrossOrigin
    出现VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。 未能将管道连接到虚拟机: 所有的管道范例都在使用中。
    说一下 JSP 的 4 种作用域?
    jsp有哪些内置对象?作用分别是什么?
    MVC的各个部分都有那些技术来实现?如何实现?
    你所了解的的软件测试类型都有哪些,简单介绍一下。
    你的测试职业发展目标是什么?
    您认为做好测试用例设计工作的关键是什么?
  • 原文地址:https://www.cnblogs.com/wait-hua/p/4431684.html
Copyright © 2011-2022 走看看