JS函数面试题(10)

一.什么是函数?函数声明的作用是什么?函数定义包括哪几部分内容?如何调用函数?

1.1:函数就是包裹在花括号中的代码块,前面使用function关键字
1.2:当需要执行某个事件时需要这方法可以直接调用,并且可重复使用,减少代码的重复性。
1.3:定义函数必须有function关键字(关键字必须小写),函数名,参数(根据情况而定),还有函数体
    函数又分为匿名函数和自定义函数。

自定义函数:function Fun(){}
匿名函数:var Fun = function(){} //这是将匿名函数赋值给变量Fun
1.4:在不同的情况下调用方式不同,直最接的调用是函数名+(),由上例题就是Fun()

二.编写一个Javascript函数,传入一个数组,对数组中的元素进行去重并返回一个无重复元素的数组,如传入的数组元素为[123, “meili”, “123”, “mogu”, 123],则输出:[123, “meili”, “123”, “mogu”]

    //2.1
    function fun(arr) {
        return Array.from(new Set(arr));
    }
    console.log(fun([123, "meili", "123", "mogu", 123]));
    //2.2
    function fun2(arrs) {
        for (var i = 0, hash = []; i < arrs.length; i++) {
            if (hash.indexOf(arrs[i]) === -1) {
                hash.push(arrs[i]);
            }
        }
        return hash;
    }
    console.log(fun2([123, "meili", "123", "mogu", 123]));
    //方法很多种

三.以下哪些是javascript的全局函数:()
**A:**escape
**B:**parseFloat
**C:**eval
**D:**setTimeout

真确答案:ABC

函数:描述
decodeURI() 解码某个编码的 URI。
decodeURIComponent() 解码一个编码的 URI 组件。
encodeURI() 把字符串编码为 URI。
encodeURIComponent() 把字符串编码为 URI 组件。
escape() 对字符串进行编码。
eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。
isFinite() 检查某个值是否为有穷大的数。
isNaN() 检查某个值是否是数字。
Number() 把对象的值转换为数字。
parseFloat() 解析一个字符串并返回一个浮点数。
parseInt() 解析一个字符串并返回一个整数。
String() 把对象的值转换为字符串。
unescape() 对由 escape() 编码的字符串进行解码。

四.请编写一个JavaScript函数,它的作用是校验输入的字符串是否是一个有效的电子邮件地址。要求: a) 使用正则表达式。 b) 如果有效返回true ,反之为false。

function isEmail(emailstr){
    var reg=/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/i;
    return reg.test(emailstr);
}
console.log(isEmail("178978"));

五.在空白( ? )处填入适当的代码使输出结果成立:
function showMoney( ) {
?
};
var personA = new Object;
var personB = new Object;
personA.money= “100”;
personB.money= “150”;
personA.showMoney= showMoney;
personB.showMoney= showMoney;
输出结果:
console.log(personA.showMoney( )); //“100”
console.log(personB.showMoney( )); //"150"

答案:return this.money;
解析:可换种形式写出,就好懂了
var personA = {
        money: "100",
        showMoney: function () {
            return this.money;
        }
    }
    var personB = {
        money: "150",
        showMoney: function () {
            return this.money;
        }
    }
    console.log(personA.showMoney());
    console.log(personB.showMoney());

六.请你谈一下改变函数内部this指针的指向函数有哪几种,他们的区别是什么

改变函数内部this指针指向函数有 3种
6.1: call:传参时第一个参数是改变this指向的对象,第二第三第 n 个参数全都用逗号分隔,直接放到后面。例:a.fun.call(b,index1,index2);
6.2: apply:传参时第一个参数是改变this指向的对象,后面所有参数都必须放在一个数组里面传进去。例:a.fun.call(b,[index1,index2]);
6.3: bind:同call(bind 返回的是一个新的函数,你必须调用它才会被执行)例a.fun.call(b,index1,index2)();

七.下面哪个函数没有定时器作用?
A: window.setTimeout
B: window.setInterval
C: window.requestAnimationFrame
D: window.requestAsyncAfter

答案:D
解析
A:setTimeout()在指定的毫秒数后调用函数或计算表达式。
B:setInterval()按照指定的周期(以毫秒计)来调用函数或计算表达式。
C:告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行

八.下列哪个选项显示 JavaScript 中函数耗费时间的进度?
A:
B:
C:
D:

答案:C
解析:
<progress> 标签定义运行中的进度
新属性
max	    number	规定需要完成的值。
value	number	规定进程的当前值。

九.在javascript中,( )变量在函数外声明,并可从脚本的任意位置访问**
A: 局部
B: 全局
C: typeOf
D: New

答案:B
解析
A:局部 JavaScript 变量:在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是局部的)。
B:全局 JavaScript 变量:在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
C:typeof: typeof 操作符来检测变量的数据类型。
D:new:new是用来实例化一个对象的

十.当调用函数时,实参是一个数组名,则向函数传送的是________
A: 数组的长度
B: 数组的首地址
C: 数组每一个元素的地址
D: 数组每个元素中的值

答案:B
例题:
var arr=[1,2,3];
function test(arr){
console.log(arr[arr.length]=4);//打印4
}
test(arr);
console.log(arr);//打印[1,2,3,4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值