重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
js中变量类型是由后面的值确定的,以下教大家如何知道当前变量的类型。具体方法如下。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、雅安服务器托管、营销软件、网站建设、邗江网站维护、网站推广。
具体步骤
复习一下变量都有哪些类型
JavaScript中变量有number, string, boolean, object, function, undefined
考察什么情况是哪种类型
使用 typeof 属性,可以返回变量的类型
如:
script type="text/javascript"
var a = 12;
//alert(typeof a); //number
a = "asdf";
//alert(typeof a); //string
a = true;
//alert(typeof a); //boolean
a = function() {
alert("adfasdf");
};
//alert(typeof a); //function
a = document;
//alert(typeof a); //object
var b;
alert(typeof b); //undefined
/script
变量a在前面赋值,后面的注释就是相应的类型
javascript布尔值显示转换是JavaScript的语法规定。
1.特殊值undefined和null变成false。
2.数字0和NaN变成false。
3.空字符串变成false。
4.所有其他值都变成true。
在之前我们讨论到布尔运算符
和
||
的时候,我说过它们的结果是布尔值。这样说起来有点过于简单化了。如果你用它们来计算布尔数据类型,它们确实会返回布尔值。但是它们也能用于计算其他的类型的数据,这种时候,返回的就将是其中的一个参数了。
或运算符“||”
真正做的事是这样的:它首先检查一下它左边的参数,如果转换成布尔类型的值后为true,那么就返回左边的参数,否则就返回右边的参数。
仔细想想当运算符两边都是布尔类型的值的时候,是不是这样的。为什么它这样运行?这样运行的结果其实非常实用。我们来看这个例子:
复制代码
代码如下:
var
input
=
prompt("What
is
your
name?",
"Kilgore
Trout");
alert("Well
hello
"
+
(input
||
"dear"));
如果用户按“取消”或者直接关掉prompt对话框,input的值将是null或者“”。这两种情况下,转换成布尔类型的值都是false。那么这时候
input
||
“dear”
这个表达式的意思就是input有值的时候就得到input的值,否则就得到“dear”。这是一个很简单的提供一个默认值的方法。
与运算符
“”
的工作原理类似,但是与
“||”
正好相反。当它左边的参数转换成布尔类型的值为“false”的时候,它就返回那个值,否则返回右边的值。这两个操作符还有一个特点就是,只有在必要的时候,才会计算它右边的表达式的值。在“true
||
X”
这个表达式中,不管X是什么,结果都是true,所以X就不会被计算,如果X有其他的效果,那这个效果也不会产生。“false
X”
也是同样的道理。
复制代码
代码如下:
false
||
alert("I'm
happening!");
true
||
alert("Not
me.");
1、if的括号里,一定是一个布尔值,只可以是true或false,但这个布尔值可以是表达式计算结果。你常见的if(a == b)实际上如果a和b是相等的,首先还是变成if(true),如果括号里直接就是if(true),这是很正常的,因为如果if的括号里是true,就执行if段,否则就执行else段。
2、正因为if(true)会执行if段,所以在if段把onOff变成false,以便让它执行else段; 在else段让onOff变成true,如此反复循环,就变成了一下执行if,一下执行esle。
3、window.onload是一个事件,它会在页面中所有元素都加载完成的时候触发这个事件。并不是说浏览器会一直循环等待事件触发,而是浏览器感知你的一切操作,当某个操作进行时,它再去触发这个事件,并执行给这个事件绑定的函数。就好像你告诉百度,“有人回答这个问题就通知你一下”,这个就是一个事件,并不需要你不停的来看看是否有人回答,而是有人回答完之后,百度会去告诉你,而百度也不需要一直看是否有人回答,只需要在我回答的时候,自动感知有人回答,然后再自动去告诉,比如发个通知。
4、函数的作用域是可以嵌套的,aa函数的作用域大于bb函数的作用域,所以bb函数可以用aa函数的,因为它知道它的上级可以给它提供这些变量。但是aa却不能使用bb中的变量,因为它无法预知bb中是否有这个变量,这是比较俗的讲法。实际上js作用域问题是一个很大的问题,在这里根本无法三言两语讲清楚。你要是真想知道,还是专门去多找几篇关于js作用域的博客看看,收获会很大。
1、number类型
① number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后至少有一位数字)。
浮点数会自动转换为整数,如下:
let num = 1.00
console.log(num) // 输出:1,自动转换为了整数
② 浮点数的最高精度是17位,看下面的例子:
let a = 0.1
let b = 0.2
console.log(a + b) // 输出:0.30000000000000004
上面的例子,结果竟然不是0.3,至于其他变成语言,也会遇到这种情况(关于浮点数计算会产生误差问题,其他有些变成语言也会出现类似情况。)
③ NaN:非数字类型,特点:涉及到任何关于NaN的操作,都会返回NaN,而且NaN不等于自身。如下:
let name = 'lisi'
console.log(name / 10) // 输出:NaN
console.log(NaN === NaN) // 输出:false
④ isNaN()函数用于判断是否是一个非数字类型,如果传入的参数是一个非数字类型,那么返回true,否则返回false;
⑤ isNaN()函数传入一个参数,函数会先将参数转换为数值,如果参数类型为对象类型,会先调用对象的valueOf()方法,再确定该方法返回的值是否可以转换为数值类型,如果不能,再调用对象的toString()方法,再确定返回值;
⑦ 数值转化:
Number(),转型函数,可以用于任何数据类型
parseInt(),将值转换为整型,用的较多
parseFloat(),将值转换为浮点型
2、string类型
① 字符串类型中的单双引号作用一样;
② 字符串有length属性,可以取得字符串的长度:
let str = 'Hello world'
console.log(str.length) // 输出:11
③ 字符串的值是不可变的,要改变一个字符串的值,首先要销毁原来的字符串,再用另一个包含新值得字符串区填充该字符串;
④ 字符串转换:
String(),转型函数,适用于任何数据类型(null,undefined转换后为null和undefined)
toString()方法可以把一个逻辑值转换为字符串,并返回结果(null、undefined没有toString()方法)
let ab = 'zhangsan'
let bc = null
let cd = undefined
console.log(ab.toString()) // 输出:zhangsan
// console.log(bc.toString()) // error 报错
// console.log(cd.toString()) // error 报错
console.log(String(ab)) // 输出:zhangsan
console.log(String(bc)) // 输出:null
console.log(String(cd)) // 输出:undefined
3、boolean类型
① 这个类型只有两个值,true和false;
② Boolean(),转型函数,将某个值转换为Boolean类型
4、null类型
① null类型被看做空对象指针,只有一个值,即null值,所以在用typeof操作符去检测null类型的值得时候,结果是object类型;
② 如果你定义了一个变量,但是想在以后把这个对象当做一个对象来使用,最好将该对象初始化为null值
5、undefined类型
① 只有一个值,即undefined,如果声明了一个变量,但是未给变量初始化值,那么这个变量的值就是undefined:
let name = 'zhangsan'
let age
console.log(name) // 输出:zhangsan
console.log(age) // undefined,因为声明了age,但是没有给初始化值
② 调用函数时,应该提供的参数没有提供,该参数等于undefined;
③ 对象没有赋值的属性,该属性的值为undefined;
④ 函数没有返回值,默认返回undefined。
以上就是javascript的基本数据类型有哪些?的详细内容,更多请关注html中文网其它相关文章!