js undefined易错分析

undefined

以下是错误写法:

    data = undefined;
    alert(undefined==false);//这样判断会输出false;
    if(data!=undefined || data!=‘‘ || data!=null || data!="/"){
        alert(111); //*会输出111,因为先判断data!=undefined为假后,再开始继续判断data!=‘‘
        return false;
    }else{
        alert(222);
        return true;
    }

正确写法是:

    data = undefined;
    if(data || data=="/"){
        return true;
    }else{
        return false;
    }
时间: 2024-10-09 20:44:32

js undefined易错分析的相关文章

关于js的易错知识

1 var arr = []; 2 for(var i = 0;i<2;i++){ 3 arr[i]=function(){ 4 console.log(i);//这里由于内部没有定义i,根据函数链它会往上一层寻找最近的作用域下的i 5 } 6 } 7 arr[0](); 8 arr[1](); 上述输出的都是2. 为什么呢?其实上述的操作是给aar数组添加了两个函数,所以自然可以用数组加下标和()执行函数. 易错点是人们常常以为第一个输出的是0,第二个函数输出的是1. 但是由于函数执行是自上而

C语言指针与数组的定义与声明易错分析

部分摘自<C语言深度解剖> 1.定义为数组,声明为指针 在文件1中定义: char a[100]; 在文件2中声明: extern char *a; //这样是错误的 这里的extern告诉编译器a这个名字已经在别的文件中被定义了,下面的代码使用的a是在别的文件中定义的.编译器是按文件分别编译的,当a被声明为char* a时,编译器理所当然的认为a是一个指针变量,在32位系统下占用4个byte,这4个byte存放的是地址,地址指向的空间存储的是char类型数据. 程序会返回SIGSEGV. 2

单例模式易错分析

最近在学些设计模式,今天记录的是单例模式,单例模式在平时的工作中运用的还是比较多的,是一种常用的软件设计模式,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式将是您的是最好的解决方案. 先上代码: public class SigletonCounter { //static SigletonCounter instance = new SigletonCounter(); static

JS的易错代码

1. var val = false; var x = val || []; console.log(x); //[]

集合框架中,引用数据类型对象集合的构建,易错点分析

先来个完整的效果代码:其目的创建5个学生对象,录入姓名与年龄的对象,并用集合将其遍历出来.易错点:1.如果不在学生对象中重写toString方法,那么在集合中就会出现,遍历出来后的arr{i}全部都是引用的对象地址,并不是对象.2.引用数据类型与基本数据类型最大的区别,引用数据类型要事先定义好各项属性与方法.要知道有参构造的作用是初始化方法里的属性.3.定义setname().getname().setage().getage()这四个方法,通过这四个方法来实现对name和age的操作.这样一来

js基础知识易错点(一)

最近替另一个项目招人,要求基础知识好,随便问了一些基础题,发现了一些易错的点,总结一下. 1.判断一个空数组 var arr = []; 1)JSON.stringify(arr) == "[]" 2)arr instanceof Array && arr.length == 0 3)Array.prototype.isPrototypeOf(arr) && arr.length == 0 测试一个对象是否在另一个对象的原型链上 注意:此处要注意,单纯判

Javascript易错知识点

? JS易错知识点总结: == 和 === 的区别: ==:判断两个变量的值是否相等. ===:判断两个变量的类型和值是否都相等,两个条件同时满足时,表达式为True. switch中break的作用: 如果一个case后面的语句,没有写break,那么程序会向下执行,而不会退出: 例如:当满足条件的case 2下面没有break时,case 3也会执行 1 var num = 2; 2 switch(num){ 3 case 1: 4 alert('case 1'); 5 break; 6 c

JavaScript易错知识点整理

本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点. JavaScript知识点 1.变量作用域 var a = 1; function test() { var a = 2; console.log(a); // 2 } test(); 上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. var a

JavaScript 易错知识点整理

本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点. JavaScript知识点 1.变量作用域 var a = 1;function test() { var a = 2; console.log(a); // 2} test();上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. var a =