jQuery数据类型小结(14个)


Posted in Javascript onJanuary 08, 2016

jQuery除了包含原生JS中的内置数据类型(built-in datatype),还包括一些扩展的数据类型(virtual types),如Selectors、Events等。

1. String

String最常见,几乎任何一门高级编程语言和脚本语言中都支持,比如"Hello world!"即字符串。字符串的类型为string。比如

var typeOfStr = typeof "hello world";//typeOfStr为“string"

1.1 String内置方法

"hello".charAt(0) // "h"
"hello".toUpperCase() // "HELLO"
"Hello".toLowerCase() // "hello"
"hello".replace(/e|o/g, "x") // "hxllx"
"1,2,3".split(",") // ["1", "2", "3"]

1.2 length属性:返回字符长度,比如"hello".length返回5

1.3 字符串转换为Boolean:

一个空字符串("")默认为false,而一个非空字符串为true(比如"hello")。

2. Number

数字类型,比如3.1415926或者1、2、3...

typeof 3.1415926 返回的是"number"

2.1 Number转换为Boolean:

如果一个Number值为0,则默认为false,否则为true。

2.2 由于Number是采用双精度浮点数实现的,所以下面这种情况是合理的:

0.1 + 0.2 // 0.30000000000000004

3. Math

下面的方法与Java中的Math类的静态方法类似。

Math.PI // 3.141592653589793
Math.cos(Math.PI) // -1

3.1 将字符串化为数字:parseInt和parseFloat方法:

parseInt("123") = 123 (采用十进制转换)
parseInt("010") = 8 (采用八进制转换)
parseInt("0xCAFE") = 51966 (采用十六进制转换)
parseInt("010", 10) = 10 (指定用10进制转换)
parseInt("11", 2) = 3 (指定用二进制转换)
parseFloat("10.10") = 10.1

3.2 数字到字符串

当将Number粘到(append)字符串后的时候,将得到字符串。
"" + 1 + 2; // "12"
"" + (1 + 2); // "3"
"" + 0.0000001; // "1e-7"
或者用强制类型转换:
String(1) + String(2); //"12"
String(1 + 2); //"3"

4. NaN 和 Infinity

如果对一个非数字字符串调用parseInt方法,将返回NaN(Not a Number),NaN常用来检测一个变量是否数字类型,如下:

isNaN(parseInt("hello", 10)) // true
Infinity表示数值无穷大或无穷小,比如1 / 0 // Infinity。

对NaN和Infinity调用typeof运算符都返回"numuber"。

另外 NaN==NaN 返回false,但是 Infinity==Infinity 返回true。

5. Integer 和 Float

分为表示整型和浮点型。

6. BOOLEAN

布尔类型,true或者false。

7. OBJECT

JavaScript中的一切皆对象。对一个对象进行typeof运算返回 "object"。

var x = {}; 
var y = { name: "Pete", age: 15 };

对于上面的y对象,可以采用圆点获取属性值,比如y.name返回"Pete",y.age返回15

7.1 Array Notation(数组访问方式访问对象)

var operations = { increase: "++", decrease: "--" } 
var operation = "increase"; 
operations[operation] // "++"; 
operations["multiply"] = "*"; // "*"

上面operations["multiply"]="*"; 往operations对象中添加了一个key-value对。

7.2 对象循环访问:for-in

var obj = { name: "Pete", age: 15}; 
for(key in obj) { 
alert("key is "+[key]+", value is "+obj[key]); 
}

7.3 任何对象不管有无属性和值,都默认为true

7.4 对象的Prototype属性

jQuery中用fn(Prototype的别名)动态为jQuery Instances添加对象(函数)

var form = $("#myform"); 
form.clearForm; // undefined 
form.fn.clearForm = function() {
return this.find(":input").each(function() { this.value = ""; }).end();
}; 
form.clearForm() // works for all instances of jQuery objects, because the new method was added

8. OPTIONS

几乎所有的jQuery插件都提供了一个基于OPTIONS的API,OPTIONS是JS对象,意味着该对象以及它的属性都是optional(可选的)。允许customization。
比如采用Ajax方式提交表单,

$("#myform").ajaxForm();//默认采用Form的Action属性值作为Ajax-URL,Method值作为提交类型(GET/POST)
$("#myform").ajaxForm({ url: "mypage.php", type: "POST" });//则覆盖了提交到的URL和提交类型

9. ARRAY

var arr = [1, 2, 3];

ARRAY是可变的lists。ARRAY也是对象。

读取或设置ARRAY中元素的值,采用这种方式:

var val = arr[0];//val为1
arr[2] = 4;//现在arr第三个元素为4

9.1 数组循环(遍历)

for (var i = 0; i < a.length; i++) { // Do something with a[i] }
但是当考虑性能时,则最好只读一次length属性,如下:
for (var i = 0, j = a.length; i < j; i++) { // Do something with a[i] }
jQuery提供了each方法遍历数组:
var x = [1, 2, 3]; 
$.each(x, 
function(index, value) { 
console.log("index", index, "value", value); 
});

9.2 对数组调用push方法意味着将一个元素添加到数组末尾,比如 x.push(5); 和 x.[x.length] = 5; 等价

9.3 数组其他内置方法:

var x = [0, 3, 1, 2]; 
x.reverse() // [2, 1, 3, 0] 
x.join(" ? ") // "2 - 1 - 3 - 0" 
x.pop() // [2, 1, 3] 
x.unshift(-1) // [-1, 2, 1, 3] 
x.shift() // [2, 1, 3] 
x.sort() // [1, 2, 3] 
x.splice(1, 2) // 用于插入、删除或替换数组元素,这里为删除从index=1开始的2个元素

9.4 数组为对象,所以始终为true

10. MAP

The map type is used by the AJAX function to hold the data of a request. This type could be a string, an array<form elements>, a jQuery object with form elements or an object with key/value pairs. In the last case, it is possible to assign multiple values to one key by assigning an array. As below:
{'key[]':['valuea','valueb']}

11. FUNCTION:匿名和有名两种

11.1 Context、Call和Apply

In JavaScript, the variable "this" always refers to the current context. 
$(document).ready(function() { 
// this refers to window.document}); 
$("a").click(function() { // this refers to an anchor DOM element
});

12. SELECTOR

There are lot of plugins that leverage jQuery's selectors in other ways. The validation plugin accepts a selector to specify a dependency, whether an input is required or not:
emailrules: { required: "#email:filled" }
This would make a checkbox with name "emailrules" required only if the user entered an email address in the email field, selected via its id, filtered via a custom selector ":filled" that the validation plugin provides.

13. EVENT

DOM标准事件包括:blur, focus, load, resize, scroll, unload, beforeunload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, andkeyup

14. JQUERY

JQUERY对象包含DOM元素的集合。比如$('p')即返回所有<p>...</p>
JQUERY对象行为类似数组,也有length属性,也可以通过index访问DOM元素集合中的某个。但是不是数组,不具备数组的某些方法,比如join()。

许多jQuery方法返回jQuery对象本身,所以可以采用链式调用:
$("p").css("color", "red").find(".special").css("color", "green");
但是如果你调用的方法会破坏jQuery对象,比如find()和filter(),则返回的不是原对象。要返回到原对象只需要再调用end()方法即可。

Javascript 相关文章推荐
Js 本页面传值实现代码
May 17 Javascript
iframe 异步加载技术及性能分析
Jul 19 Javascript
多个checkbox被选中时如何判断是否有自己想要的
Sep 22 Javascript
js+html5实现的自由落体运动效果代码
Jan 28 Javascript
理解javascript中的严格模式
Feb 01 Javascript
Javascript基础之数组的使用
May 13 Javascript
bootstrap滚动监控器使用方法解析
Jan 13 Javascript
vue实现简单实时汇率计算功能
Jan 15 Javascript
javascript 中的try catch应用总结
Apr 01 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
Jun 24 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
Apr 20 Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 #Javascript
基于jquery实现图片上传本地预览功能
Jan 08 #Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
Jan 08 #Javascript
jQuery实现本地预览上传图片功能
Jan 08 #Javascript
jQuery自定义滚动条完整实例
Jan 08 #Javascript
javascript正则表达式定义(语法)总结
Jan 08 #Javascript
jquery限定文本框只能输入数字(整数和小数)
Jan 08 #Javascript
You might like
php xml文件操作实现代码(二)
2009/03/20 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
2009/08/21 PHP
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
Web程序工作原理详解
2014/12/25 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
保健品市场营销方案
2014/03/31 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
催款通知书范文
2015/04/17 职场文书
汶川大地震感悟
2015/08/10 职场文书