Updating at irregular intervals

1、42.toFixed(2)

  • SyntaxError
  • “.”在数字字符中的优先级高于在属性字符,相当于(42.)toFixed(2)

2、42..toFixed(2)

  • “42.00”
  • 相当于(42.).toFixed(2)

3、42 .toFixed(2)

  • “42.00”
  • 相当于(42).toFixed(2)

4、'1 ,2,3'.split(",")[0]==1

  • true
  • 字符串类型数字与number类型比较
  • 类型转换

5、typeof null === object

  • ReferenceError: object is not defined
  • typeof 返回值是字符串类型
  • typeof null === “object” //true

6、

var a = 1/"a";
typeof a==="number";
  • NaN、true
  • 不是数字的数字仍是数字类型

7、

"number" === "number";
var a = 1/"a";  //NaN
a ==NaN;
a === NaN;
isNaN(a);
NaN != NaN;
  • true、false 、false 、true 、true

8、

isNaN("a");
Number.isNaN("a");
  • ture 、false
  • A bug

9、

    var a = 2;
    var b = a;
    b = b+1;
    console.log(a,b);
    var c = [1,2,3];
    var d = c;
    c.push(4);
    console.log(c,d);
  • 2、3、[1,2,3,4]、[1,2,3,4]
  • value-copy、reference-copy

10、

var date = new Date();
typeof date;
var date1 = Date();
typeof date1;
  • object、string

11、

<script>
    var a = 0;
    var b = 0;

    var foo = ()=>
    {
        for(let i=0;i<5;i++)
        {   
            a+=1;
            if(i===3)
            {
                break;
            }

        }
        a+=1;

    }

    var bar = ()=>
    {
        for(let i=0;i<5;i++)
        {   
            b+=1;
            if(i===3)
            {
                return;
            }

        }
        b+=1;
    }

    foo();
    bar();
    console.log("a:"+a+" "+"b:"+b);
</script>
  • a:5 b:4

  • break 和 return 的区别

12、

<script>
    --"3.14";
    - -"3.14";
</script>
  • ReferenceError、3.14
  • 一元运算符

13、

<script>
    var arr = ["a","b","c"];
    arr.join();
    arr.join(".");
</script>
  • “a,b,c” “a.b.c”
  • join()默认参数为“,”
  • 数组转为字符串

14、

<script>
    var str = "hello world";
    str.split("");
    arr.split("",3);
</script>
  • [“h”, “e”, “l”, “l”, “o”, ” “, “w”, “o”, “r”, “l”, “d”] [“h”, “e”, “l”]
  • split()方法将字符串转成字符数组
  • 第二个参数代表返回地字符数组的长度,默认是分割整个字符串

15、

<script>
    console.log(["a","b","c"].join()==["a","b","c"].toString());  
</script>
  • true
  • join()默认参数
  • Array.prototype.toString()

16、

[1,2,3].map(parseInt);
  • [1,NaN,NaN]
  • map()传递的参数含义
  • parseInt(string,radix)用法

17、

let [head,...tail] = [1,2,3,4];
console.log(tail);
let [head,head1,...tail] = [1,2,3,4];
console.log(tail);
let [head,...,tail] = [1,2,3,4];
console.log(tail);
  • [2, 3, 4]
  • [3, 4]
  • SyntaxError: Unexpected token

18、

var foo=function(){alert(123)}
window.setTimeout(foo,5000);
window.setTimeout(foo(),5000);
window.setTimeout("foo()",5000)
  • alert(123) five seconds later
  • alert(123) immediately
  • alert(123) five seconds later

19、

setTimeout("alert('5 seconds!')",5000);
setTimeout(alert('5 seconds!'),5000);
  • alert(‘5 seconds!’) five seconds later
  • alert(‘5 seconds!’) immediately

20、

<p>10<sub>2</sub></p>
<p>10<sup>2</sup></p>

21、onchange、oninput、onblur的区别

  • input失去焦点且value变化
  • 焦点变化
  • input失去焦点

22、浏览器的垃圾回收机制

垃圾收集器必须跟踪哪个变量有用哪个变量没用,对于不再有用的变量打上标记,以备将来收回其占用的内存,内存泄露和浏览器实现的垃圾回收机制息息相关, 而浏览器实现标识无用变量的策略主要有下两个方法:
第一,引用计数法
跟踪记录每个值被引用的次数。当声明一个变量并将引用类型的值赋给该变量时,则这个值的引用次数就是1。如果同一个值又被赋给另一个变量,则该值的引用次 数加1.相反,如果包含对这个值引用的变量又取得另外一个值,则这个值的引用次数减1.当这个值的引用次数变成0时,则说明没有办法访问这个值了,因此就 可以将其占用的内存空间回收回来。

第二,标记清除法
标记清除的算法分为两个阶段,标记(mark)和清除(sweep). 第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。

23、同源策略

同源策略是浏览器有一个很重要的概念。所谓同源是指,域名,协议,端口相同。不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。简单的来说,浏览器允许包含在页面A的脚本访问第二个页面B的数据资源,这一切是建立在A和B页面是同源的基础上。

24、跨域的几种方式

  • jsonp(利用script标签的跨域能力)跨域、
  • 设置代理服务器(由服务器替我们向不同源的服务器请求数据)
  • CORS(跨源资源共享,cross origin resource sharing)
  • iframe跨域
  • postMessage(包含iframe的页面向iframe传递消息)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值