2020-03-29

1.解释jsonp的原理,以及为什么不是真正的ajax

Jsonp并不是一种数据格式,而json是一种数据格式,jsonp是用来解决跨域获取数据的一种解决方案,具体是通过动态创建script标签,然后通过标签的src属性获取js文件中的js脚本,该脚本的内容是一个函数调用,参数就是服务器返回的数据,为了处理这些返回的数据,需要事先在页面定义好回调函数,本质上使用的并不是ajax技术

2.字符串反转,如将 '12345678' 变成 '87654321'

//思路:先将字符串转换为数组 split(),利用数组的反序函数 reverse()颠倒数组,再利用 jion() 转换为字符串
var str = '12345678';
str = str.split('').reverse().join('');

3.将数字 12345678 转化成 RMB形式 如: 12,345,678

//思路:先将数字转为字符, str= str + '' ;
//利用反转函数,每三位字符加一个 ','最后一位不加; re()是自定义的反转函数,最后再反转回去!
for(var i = 1; i <= re(str).length; i++){
    tmp += re(str)[i - 1];
    if(i % 3 == 0 && i != re(str).length){
        tmp += ',';
    }
}

4.生成5个不同的随机数;

    //思路:5个不同的数,每生成一次就和前面的所有数字相比较,如果有相同的,则放弃当前生成的数字!
var num1 = [];
for(var i = 0; i < 5; i++){
    num1[i] = Math.floor(Math.random()*10) + 1; //范围是 [1, 10]
    for(var j = 0; j < i; j++){
        if(num1[i] == num1[j]){
            i--;
        }
    }
}

5.阶乘函数;98765…*1

//原型方法
Number.prototype.N = function(){
    var re = 1;
    for(var i = 1; i <= this; i++){
        re *= i;
    }
    return re;
}
var num = 5;
alert(num.N());

6.window.location.search返回的是什么?
查询(参数)部分。除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值

返回值:?ver=1.0&id=timlq 也就是问号后面的
number=1&year=2016

//url:http://www.sina.com/getage?number=1&year=2016

7.window.location.hash 返回的是什么?
答:锚点 , 返回值:#love ;

//url:http://www.sina.com/getage?#age
age  //这时就返回”#age

8.window.location.reload() 作用?
刷新当前页面

9.什么是闭包?写一个简单的闭包
闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

function outer(){
    var num = 1;
    function inner(){
        var n = 2;
        alert(n + num);
    }
    return inner;
}
outer()();

10.javascript 中的垃圾回收机制?
JS执行环境负责管理代码。
(1)在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。
(2)如果两个对象互相引用,而不再 被第3者所引用,那么这两个互相引用的对象也会被回收。因为函数a被b引用,b又被a外的c引用,这就是为什么 函数a执行后不会被回收的原因。

你可能感兴趣的:(2020-03-29)