JavaScript中如何检测一个变量是一个String类型?

1 typeof x === "string"
2 typeof(x) === "string‘    // 小写
3 x.constructor === String     // 大写类型

同理:Number, Boolean Function 类型也可以这样检测

注意:object不同

var obj = {
        ‘age‘:19,
        ‘put‘:function(){
                return 0;
        }
}

这样定义的对象与前面规则一样

 var Obj = function(){
                this.age = 12;
                this.put = function(){
                        return 0;
                }
        }

var obj = new Obj;
        typeof obj = "object"

通过构造函数构建对象,obj.constructor = ƒ Function() { [native code] }      typeof obj = "object"

所以Object类型检测要注意构造方法。

原文地址:https://www.cnblogs.com/tzdy/p/10792165.html

时间: 2024-10-07 18:10:46

JavaScript中如何检测一个变量是一个String类型?的相关文章

在javascript中如何检测客户端的浏览器和操作系统类型

  答案:var resolution = "分辨率:" + window.screen.width + "*" + window.screen.height;, var ua = window.navigator.userAgent

js中判断一个变量是否为数字类型的疑问

1.typeof(a)=="number" 是true,但是a instanceof Number却为false,不理解 2.isNaN()不能判断一个变量是否为数字类型,isNaN(123)值为false,isNaN('123')值也为false.isNaN() 的实际作用跟它的名字isNaN并不一致,isNaN(NaN)值为true,isNaN(Number("xyz"))值为true,isNaN("abc")值为true,isNaN(123

javascript中字符串和字符串变量的问题

var s = new String("hello"); s.indexOf(1) = 'p'; //错误,indexof()是函数 s[1]='p' //错误,在c和c++可以改变字符串变量元素的值,但这里貌似有问题 alert(s); //显示“hello” var s = new String("Visit Microsoft!") var a=s.replace(/Microsoft/, "W3School") alert(a); ale

将 javascript 中的 timestamp(时间戳) 转 c# 的 datetime类型

相信很多人在工作中都会遇到需要将 timestamp(时间戳) 转换为 datetime 类型,特别是做网站开发的时候,有时候需要将前端传递过来的 timestamp 转为 datetime 类型,而在转的过程中发现了需要注意的地方. 首先先说说在 javascript 中产生 timestamp 的方式,一般有以下几种方式: var date = new Date(); //获取timestamp var timestamp1 = date.getTime(); var timestamp2

在JavaScript中,arguments是对象的一个特殊属性。

arguments对象 function函数的内置参数的“数组”/“集合”:同时arguments对象就像数组,但是它却不是数组. 常用属性: 1.length, 获取arguments对象的长度. 2.callee, 引用当前正在执行的函数.多用于匿名函数,递归传递! 以上是关于arguments 对象的个人的理解~

javascript中使用var定义变量的预编译效果

首先说明一点:javascript语法是非常灵活的,灵活的代价就是很容易导致不规范的编码和各种意想不到的运行结果.ECMAScript 5 引入了 严格模式 (strict mode),今后我们编写javascript代码最好都使用"use strict",规范我们的javascript代码.下面的测试代码不是基于严格模式. alert(a); var a;//已声明未赋值 alert(b);//未声明的变量 执行结果是:a打印undefined,b报错.这说明:var a;这条语句的

Javascript中函数提升和变量提升

词法分析 词法分析方法: js运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 分析参数 再分析变量的声明 分析函数说明 具体步骤如下: 函数在运行的瞬间,生成一个活动对象(Active Object),简称AO 分析参数 函数接收形式参数,添加到AO的属性,并且这个时候值为undefine,例如AO.age=undefine 接收实参,添加到AO的属性,覆盖之前的undefine 分析变量声明,如var age;或var age=23; 如果上一步分析参数中AO还没有age属性,

javascript中函数声明、变量声明以及变量赋值之间的关系与影响

函数声明.变量声明以及变量赋值之间有以下几点共识: 1.所有的全局变量都是window的属性 2.函数声明被提升到范围作用域的顶端 3.变量声明被提升到范围作用域的顶端 4.变量声明比函数声明的优先级高,变量声明优先于函数声明被提升,如果两者同名同时存在,后被提升的函数声明会覆盖先被提升的变量声明 5.变量赋值不会被提升,到执行行代码才开始赋值 补充: 6.调用javascript函数的整个过程可以分为预编译期(也叫声明期)和赋值期(也叫计算执行期). 预编译期完成对所有变量(包括形参.函数内部

JavaScript中交换两个变量的值得三种做法(代码实现)

javascript在编程时经常会涉及到如何交换两个变量的值,例如常见的冒泡排序,快速排序等:下面我讲根据自己近期所学总结几种常见的交换两个变量值的方法: 方法一:借助第三方变量交换两个变量的值 var num1=20; var num2=50; var temp=num1; num1=num2; num2=temp; console.log(num1);//在控制台输出交换后的num1=50 console.log(num2);//在控制台输出交换后的num2=20 方法二:借助加法计算,交换