日度归档:2020年2月25日

javascript如何编写一个整数判断函数呢?


摘要:
下文讲述javascript中编写整数判断函数的方法分享,如下所示:

判断一个数是不是整数,在js中是我们经常使用到的方法,下文将讲述具体的实现方法,如下所示:

方法1:使用取余的方法判断

   
   <script>

   function checkZhengShu(obj) {
     return typeof obj === 'number' && obj % 1 === 0
   }
   checkZhengShu(''); //false
   checkZhengShu('87'); //false
   checkZhengShu(true); //false
   checkZhengShu([]); //false

   </script>


方法2:使用Math.round、Math.ceil、Math.floor 和传入类型进行比对判断

   
   <script>
   function checkZhengShu(obj) {
       return Math.floor(obj) === obj
    }
  
    checkZhengShu(90);//true
    checkZhengShu(9.9);//false
    checkZhengShu(''); //false
    checkZhengShu('12'); //false
    checkZhengShu(true); //false
    checkZhengShu([]); //false
   
   </script>

   


方法3: 通过位运算判断

   
   <script>
  
   function checkZhengShu(obj) {
      return (obj | 0) === obj
   }
  
   checkZhengShu(87);//true
   checkZhengShu(9.8);//false
   checkZhengShu(''); //false
   checkZhengShu('34'); //false
   checkZhengShu(true); //false
    heckZhengShu([]); //false
   
   </script>

   


方法4: ES6提供了Number.isInteger

   
   <script>
  
   function checkZhengShu(obj) {
      return (obj | 0) === obj
   }
  
 Number.isInteger(87) // true
Number.isInteger(9.8) // false
Number.isInteger('') // false
Number.isInteger('34') // false
Number.isInteger(true) // false
Number.isInteger([]) // false
   
   </script>

   

javascript中this, constructor, prototype的相关说明


摘要:
下文讲述js中this, constructor, prototype关键字相关说明,如下所示:


this关键字

this关键字用于返回当前函数执行的上下文(调用函数运行的环境)
例:

   //例1:
   alert(this);//返回windows对象,输出[object window]


   //例2:
   function test()
   {
     alert(this);
   }

   test();//由于在当前上下文中调用,所以也输出[object window]
  
   //例3:
     var name ="";
  function test(){
	   alert(this.name);
  }

  t = new test(); //输出undefined,因为t上下文的this没有name定义
 


constructor 简介

constructor 是js中的一个对象,
此属性在对象的prototype中,
constructor 是指向构造函数


	function Test(name, age){
        this.name = name;
        this.age = age;
    }
    Test.prototype.getName = function(){
        alert(this.name);
    }
    Test.prototype.getAge = function(){
        alert(this.age);
    }
    var obj = new Test();
    alert(obj.constructor == Test);// true 
 

例2

 function Test(name, age){
        this.name = name;
        this.age = age;
    }
    Test.prototype = {
        getName: function(){
           alert(this.name);
        },
        getAge: function(){
           alert(this.age);
        }
    }
    var obj = new Test();
    alert(obj.constructor == Test);// false

以上输出false的原因,是由于 prototype被重写了, 覆盖了默认的constructor。

  
  Test.prototype = {
        constructor: Test, //强制指向Person
        getName: function(){
           alert(this.name);
        },
        getAge: function(){
           alert(this.age);
        }
    }
    此时constructor就指向Test


prototype

prototype是函数的属性
prototype自身也是一个对象
prototype中保存着对象实例化后所共用的属性和方法

        function Test(name, age){
            this.name = name;
            this.age = age;
        }
        
        //所有函数都拥有prototype属性,prototype同时也是一个对象 
		
		Test.prototype = {
            getName: function(){ //所有对象实例都共享
                return this.name;
            },
            getAge: function(){//所有对象实例都共享
                return this.age;
            }
        }
    
        var obj = new Test('maomao365.com', 128);
        obj.getName(); //'maomao365.com'
        var obj2 = new Test('猫猫教程',881);
        obj2.getName(); //'猫猫教程'
        obj.getName == obj2.getName; //true, 所有实例共享
        Test.prototype.getName(); //作为普通函数属性应用,根据this上下文定义 此时this指向的是Test.prototype,返回undefined

		

javascript中如何判断json是否为空呢?


摘要:
下文讲述javascript中判断Json为空的方法分享,如下所示;

json在web开发中必不可少,常常用于web的数据交换,那么在json中如何判断json对象是否为空呢?

1.jquery判断json是否为空

   //jQuery.isEmptyObject()
   // 返回true,代表json为非空
    // 	返回false,代表json为空
 
    var objJSON ={};
    
	 if(jQuery.isEmptyObject(objJSON))
	 {
	   alert("json为非空!");
	 }else
	 {
	 	   alert("json为空!");
	 }
    


jquery中isEmptyObject源码说明
isEmptyObject: function( obj ) {
var name;
for ( name in obj ) {
return false;
}
return true;
}


2.使用原生态的Js判断

  //空json字符串是“{}”,那么原生态js如何判断json空对象
   
var objJson ={"name":"maomao365.com","webSiteName":"猫猫小屋"};
var jsonStr = {};

//判断json是否为空的发给发
var jsonCheck = (JSON.stringify(objJson)==="{}");
alert(jsonCheck);


3.使用Object.getOwnPropertyNames方法进行判断

使用getOwnPropertyNames返回对象中的属性名,如果属性名列表为空,则说明json为空

var objJson ={"name":"maomao365.com","webSiteName":"猫猫小屋"};
var obj = Object.getOwnPropertyNames(objJson);
alert(obj.length == 0);//true    


4.使用Object.keys或Object.values方法判断

使用Object.keys 获取属性列表是否为空,如果为空,则代表json为空


  var objJson ={"name":"maomao365.com","webSiteName":"猫猫小屋"};
var obj = Object.keys(objJson); // var obj = Object.values(objJson);
alert(obj.length == 0);//true