js易错点总结

alert(typeof( NaN == NaN));//结果为假。

  var undefined;

  undefined == null; // true

  [] == false; // true

  [] == ![];   // true

      0 == '';     // true

  2 == true;   // false

     1 == true;   // true

  • undefined与null相等,但不恒等(===)
  •  null的类型是对象,undified的类型是undified.
  • null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN
  • null的使用:    (1) 作为函数的参数,表示该函数的参数不是对象。    (2) 作为对象原型链的终点。
  • (1)变量被声明了,但没有赋值时,就等于undefined。 (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。   

     (3)对象没有赋值的属性,该属性的值为undefined。      (4)函数没有返回值时,默认返回undefined。

  把null转换为数字,结果为0。而把undefined转换为数字结果为NaN。

     

    JS 精度不能精确到 0.1 所以  。。。。同时存在于值和差值中

  NaN:当某类型转化为数字失败时,返回NaN,表示不是一个数字;NaN不等于任何值,包括它自己,判断时需要使用isNaN(arg)函数

  reverse();这个函数是用来进行倒序,这个没有什么可说的,所谓倒序就是大的在前面,小的在后面。

  sort();这个函数是用来对数组进行正序排列的

     <script>标签的defer="defer"属性  defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。

     <script>标签的async="async"属性async的定义和用法(是HTML5的属性)async 属性规定一旦脚本可用,则会异步执行。

  

 

  

  
console.log(1+ "2"+"2");//1+"2"先转化为“12”然后进行字符串的相加结果是“122”
console.log(1+ +"2"+"2");//由于一元运算符“+”的优先级更高,因此+“2”转换为数值2,然后1+2=3,最后数值和字符串相加,转换为字符串的拼接,结果“32”
console.log(1+ -"1"+"2");//先执行取反,变成1-1=0,然后0+“2”,结果“02”
console.log(+"1"+  "1"+"2");//先执行数值转换,相当于执行1+“1”+“2”,结果“112”
console.log("A"- "B"+"2");//先执行"A"- "B"返回NaN,再执行NaN+"2"=>"NaN2"
console.log("A"- "B"+2);//先执行"A"- "B"返回NaN+2,NaN执行加减法均返回NaN

 

  【以下这段来自于《javascript权威指南》】总体说来,加法操作符的行为变现为:
  (1)如果其中一个操作数是对象,对象会遵循对象到原始值的转换规则转换为原始类值:日期对象通过toString()方法执行转换,其他对象则通过valueOf()方法执行转换(如果valueOf()方法返回一个原始值的话)。由于多数对象都不具备可用的valueOf()方法,因此他们会通过toString()方法来执行转换。
  (2)在进行了对象到原始值的转换后,如果其中一个操作数是字符串的话,另一个操作数也会转换为字符串,然后进行字符串的连接。
  (3)否则,两个操作数都将转换为数字(或者NaN),然后进行加法操作。

   两个比较特殊的

1+{}//{}=>"[object Object]",执行数值和字符串的相加,结果"1[object Object]"
true+true//2,布尔值转换为数字后讲加
1+undefined//数值转换undefined=>NaN,结果NaN
1+null//数值转换null=>0,结果1
  但是大家要注意undefined、null这两个基本类型是没有任何属性和方法的。所以他们不会调用valueOf()和toString()
"1"+undefined//=>"1undefined"相当于执行字符串拼接
"1"+null//=>"1null"相当于执行字符串拼接

 

/* 例2.2 */
setTimeout(function() {
    console.log('taskA, asynchronous');
}, 0);
console.log('taskB, synchronize'); //while(true); -------ouput------- taskB, synchronize taskA, asynchronous

     我们可以看到,定时器延时的时间明明为0,但taskA还是晚于taskB执行。这是为什么呢?由于定时器是异步的, 异步任务会在当前脚本的所有同步任务执行完才会执行。如果同步代码中含有死循环,即将上例的注释去掉,那么这个异步任务就不会执行,因为同步任务阻塞了进程。

setTimeout 就是常见的异步回调,另外常见的异步回调即ajax请求

 

function request(url, param, successFun, errorFun) {
    $.ajax({
        type: 'GET',
        url: url,
        param: param,
        async: true,    //默认为true,即异步请求;false为同步请求
        success: successFun,
        error: errorFun
    });
}
request('test.html', '', function(data) {
    //请求成功后的回调函数,通常是对请求回来的数据进行处理 console.log('请求成功啦, 这是返回的数据:', data); },function(error) { console.log('sorry, 请求失败了, 这是失败信息:', error); });

 

 

 

 -->函数重载

  

① js中没有重载的概念,当遇到多个重名的方法后,最后一个方法定义会覆盖前面的所有方法定义

② 利用arguments实现js函数重载:通过arguments对象可以判断用户在调用函数时,是否传递了参数,以及传递了几个参数,相当于C#中的params,它是用起来像数组的一个对象,但arguments对象本身并不是数组对象。

③ 例子

复制代码
function add(){
    var sum = 0;
    for(var i =0; i < arguments.length; i++){
        sum += arguments[i];
    }
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值