文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

jquery如何判断是否是浮点数

2024-04-02 19:55

关注

这篇文章主要讲解了“jquery如何判断是否是浮点数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery如何判断是否是浮点数”吧!

  JS(ES6)中的基本数据类型:1.数值型(Number):包括整数、浮点数、2.布尔型(Boolean)、3.字符串型(String)、4.数组(Array)、5.空值(Null) 、6.未定义(Undefined),基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值。

  引用类型:Object 、Array 、Function 、Data,引用数据类型是保存在堆内存中的对象

  1.typeof

  var a;

  console.log("1:" + typeof a);

  var b=null;

  console.log("2:" + typeof b);

  var c=undefined;

  console.log("3:" + typeof c);

  var d=new Object;

  console.log("4:" + typeof d);

  var e=function() {};

  console.log("5:" + typeof e);

  var f={};

  console.log("6:" + typeof f);

  var g='';

  console.log("7:" + typeof g);

  var h=[];

  console.log("8:" + typeof h);

  var i=true;

  console.log("9:" + typeof i);

  var j=123;

  console.log("10:" + typeof j);

  var k=NaN;

  console.log("11:" + typeof k);

  var l=/^[-+]?\d+$/;

  console.log("12:" + typeof l);

  打印结果如下

  总结:typeof对null、undefined、NaN、数组、正则、Object的类型都为object

  2.constructor

  constructor 用于判断一个变量的原型,constructor 属性返回对创建此对象的数组函数的引用.

  当一个函数 F被定义时,JS引擎会为F添加 prototype 原型,然后再在 prototype上添加一个 constructor 属性,并让其指向 F 的引用,当执行 var f=new F() 时,F 被当成了构造函数,f 是F的实例对象,此时 F 原型上的 constructor 传递到了 f 上,因此 f.constructor===F

  var F=function(){}

  console.log(F.prototype);

  var f=new F();

  console.log(f.constructor===F) //true

  不难看出,F 利用原型对象上的 constructor 引用了自身,当 F 作为构造函数来创建对象时,原型上的 constructor 就被遗传到了新创建的对象上, 从原型链角度讲,构造函数 F 就是新对象的类型。这样做的意义是,让新对象在诞生以后,就具有可追溯的数据类型,也就是说对象的constructor属性指向他的构造函数

  所以内置对象在内部构建时阔以这样做出判断

  注:

  null 和 undefined 是无效的对象,因此是不会有 constructor 存在的,这两种类型的数据需要通过其他方式来判断

  constructor属性并非一定指向构造函数,他也是可以修改、变更的(当把F.prototype={}改写后,会默认把constructor覆盖掉)

  instanceof

  instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性

  及的构造函数有这些基础类型:String、Number、Boolean、Undefined、Null、Symbol(ES6引入了一种新的原始数据类型Symbol,表示独一无二的值);

  复杂类型:Array,Object;

  其他类型:Function、RegExp、Date。

  var obj=new Object()

  obj instanceof Object // true

  注意左侧必须是对象(object),如果不是,直接返回false,列如:

  var num=1

  num instanceof Number // false

  num=new Number(1)

  num instanceof Number // true

  可以看出都是num,而且都是1,只是因为第一个不是对象,是基本类型,所以直接返回false,而第二个是封装成对象,所以true。

  这里要严格注意这个问题,有些说法是检测目标的__proto__与构造函数的prototype相同即返回true,这是不严谨的,检测的一定要是对象才行,如:

  基础类型

  var num=1

  num.__proto__===Number.prototype // true

  num instanceof Number // false

  num=new Number(1)

  num.__proto__===Number.prototype // true

  num instanceof Number // true

  num.__proto__===(new Number(1)).__proto__ // true

  上面例子可以看出,1与new Number(1)几乎是一样的,只是区别在于是否封装成对象,所以instanceof的结果是不同的,string、boolean等,这些基础类型一样的。

  new String(1) // String

  String(1) // "1"

  new String(1)与String(1)是不同的,new是封装成对象,而没有new的只是基础类型转换,还是基础类型

  其他基础类型一样的。

  复杂类型,比如数组与对象,甚至函数等,与基础类型不同。

  复杂类型

  var arr=[]

  arr instanceof Array // true

  arr instanceof Object // true

  Array.isArray(arr) // true

  复杂类型从字面量是直接生成构造函数的,所以不会像基本类型一样两种情况。

  但是上面那个问题,当然,基础类型也会有这个问题,就是与Object对比。没办法,Object在原型链的上层,所以都会返回true,如下:

  (new Number(1)) instanceof Object // true

  由于从下往上,比如你判断是Number,那就没必要判断是不是Object了,因为已经是Number了……

感谢各位的阅读,以上就是“jquery如何判断是否是浮点数”的内容了,经过本文的学习后,相信大家对jquery如何判断是否是浮点数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯