为了账号安全,请及时绑定邮箱和手机立即绑定

javascript学习--元素类型检测

标签:
JavaScript

在之前先标准以下js基本的数据类型:

  1. number
  2. string
  3. boolean(布尔)
  4. null
  5. undifined
    除了这些以外就是object(对象)类型了,包括函数Function、array、data等。

检测类型方法:1.typeof
2.instanceof
3.Object.prototype.toString
4.constructor
5.duck type


先看第一种,typeof ,判断基本类型以及函数对象的时候十分方便,但是无法判断其他类型的对象,比如判断一个元素的是不是数组使用typeof判断会得到object,比如

typeof 100 "number"    //number
typeof true "boolean"    //boolean
typeof function "function()" //function

typeof(undefined) //"undefined"
typeof new Object()// "object"
typeof[1,2] //object
typeof NaN //number
typeof null //object,

2.第二个就是instanceof 操作符,方法是 obj instanceof Object,左边obj期望是一个对象,否则直接返回失败,右边期望是一个函数对象,如果不是则会抛出一个typeerror,具体是也说不清啦,看下面的图就好
图片描述
总结:
图片描述

[1,2] instanceof Array //true
new Object() instanceof Array //false

有一个需要注意的就是不同的windows和iframe之间不能使用instanceof进行判断

第三个就是object.prototype.toString,
另外标注一些作业中用到的方法
1.join(),给数据添加分隔符的作用,如果括号中不填入内容,默认为,号

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr.join())  //输出为George,John,Thomas

2.indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
语法:stringObject.indexOf(searchvalue,fromindex)
searchvalue:规定需要检索的字符串
fromindex:可选的整数参数。规定在字符串中开始检索的位置。它的 合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
注意:此方法对大小写敏感,如果没有找到指定值则返回-1

var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))//输出为0 -1 6

3.push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

语法:arrayObject.push(newelement1,newelement2,....,newelementX)
newelement1:必需,需要添加的第一个元素
newelement2:可选,可添加多个元素

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr + "<br />")
document.write(arr.push("James") + "<br />")
document.write(arr)
//George,John,Thomas
//4
//George,John,Thomas,James

4.sort() 方法用于对数组的元素进行排序.
语法:arrayObject.sort(sortby)
参数:sortby:可选。规定排序顺序。必须是函数。
说明:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
返回值:在原数据上进行排序。

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />")
document.write(arr.sort())//输出结果为
//George,John,Thomas,James,Adrew,Martin
//Adrew,George,James,John,Martin,Thomas
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort())
//10,5,40,25,1000,1
//1,10,1000,25,40,5
function sortNumber(a,b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))
//输出结果为:
//10,5,40,25,1000,1
//1,5,10,25,40,1000
点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消