how2j.cn

示例 1 : 伪对象   
示例 2 : 转换为字符串   
示例 3 : 数字转字符串   
示例 4 : 转换为数字   
示例 5 : 转换为Boolean   
示例 6 : Number()和parseInt()的区别   
示例 7 : String()和toString()的区别   

示例 1 :

伪对象

伪对象概念:javascript是一门很有意思的语言,即便是基本类型,也是伪对象,所以他们都有属性和方法。
变量a的类型是字符串,通过调用其为伪对象的属性length获取其长度
运行效果
<script> var a="hello javascript"; document.write("变量a的类型是:"+(typeof a)); document.write("<br>"); document.write("变量a的长度是:"+a.length); </script>
<script>
  var a="hello javascript"; 
  document.write("变量a的类型是:"+(typeof a));
  document.write("<br>");
  document.write("变量a的长度是:"+a.length);
</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 2 :

转换为字符串

无论是Number,Boolean还是String都有一个toString方法,用于转换为字符串
运行效果
<script> var a=10; document.write("数字 "+a+" 转换为字符串"+a.toString()); document.write("<br>"); var b=true; document.write("布尔 "+b+" 转换为字符串"+b.toString()); document.write("<br>"); var c="hello javascript"; document.write("字符串 "+c+" 转换为字符串 "+c.toString()); document.write("<br>"); </script>
<script>
  var a=10; 
  document.write("数字 "+a+" 转换为字符串"+a.toString());
  document.write("<br>");

  var b=true; 
  document.write("布尔 "+b+" 转换为字符串"+b.toString());
  document.write("<br>");

  var c="hello javascript"; 
  document.write("字符串 "+c+" 转换为字符串 "+c.toString());
  document.write("<br>");

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 3 :

数字转字符串

Number转换为字符串的时候有默认模式基模式两种
运行效果
<script> var a=10; document.write('默认模式下,数字10转换为十进制的'+a.toString()); //默认模式,即十进制 document.write("<br>"); document.write('基模式下,数字10转换为二进制的'+a.toString(2)); //基模式,二进制 document.write("<br>"); document.write('基模式下,数字10转换为八进制的'+a.toString(8)); //基模式,八进制 document.write("<br>"); document.write('基模式下,数字10转换为十六进制的'+a.toString(16)); //基模式,十六进制 document.write("<br>"); </script>
<script>
  var a=10; 
  document.write('默认模式下,数字10转换为十进制的'+a.toString()); //默认模式,即十进制
  document.write("<br>"); 

  document.write('基模式下,数字10转换为二进制的'+a.toString(2)); //基模式,二进制
  document.write("<br>"); 
  
  document.write('基模式下,数字10转换为八进制的'+a.toString(8)); //基模式,八进制
  document.write("<br>"); 

  document.write('基模式下,数字10转换为十六进制的'+a.toString(16)); //基模式,十六进制
  document.write("<br>"); 

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 4 :

转换为数字

javascript分别提供内置函数 parseInt()和parseFloat(),转换为数字

注:如果被转换的字符串,同时由数字和字符构成,那么parseInt会一直定位数字,直到出现非字符。 所以"10abc" 会被转换为 10

思考题: 字符串"10abc8" 又会被转换为多少呢?
运行效果
<script> document.write("字符串的\"10\"转换为数字的:"+parseInt("10")); //转换整数 document.write("<br>"); document.write("字符串的\"3.14\"转换为数字的:"+parseFloat("3.14"));//转换浮点数 document.write("<br>"); document.write("字符串的\"10abc\"转换为数字的:"+parseInt("10abc")); //判断每一位,直到发现不是数字的那一位 document.write("<br>"); document.write("字符串的\"hello javascript\"转换为数字的:"+parseInt("hello javascript")); //如果完全不包含数字,则返回NaN - Not a Number document.write("<br>"); </script>
<script>
  document.write("字符串的\"10\"转换为数字的:"+parseInt("10")); //转换整数
  document.write("<br>");
  document.write("字符串的\"3.14\"转换为数字的:"+parseFloat("3.14"));//转换浮点数
  document.write("<br>");
  document.write("字符串的\"10abc\"转换为数字的:"+parseInt("10abc")); //判断每一位,直到发现不是数字的那一位
  document.write("<br>");

  document.write("字符串的\"hello javascript\"转换为数字的:"+parseInt("hello javascript")); //如果完全不包含数字,则返回NaN - Not a Number
  document.write("<br>");

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 5 :

转换为Boolean

使用内置函数Boolean() 转换为Boolean值
当转换字符串时:
非空即为true
当转换数字时:
非0即为true
当转换对象时:
非null即为true
运行效果
<script> document.write("空字符串''转换为布尔后的值:"+Boolean("")); //空字符串 document.write("<br>"); document.write("非空字符'hello javascript '串转换为布尔后的值:"+Boolean("hello javascript")); //非空字符串 document.write("<br>"); document.write("数字 0 转换为布尔后的值:"+Boolean(0)); //0 document.write("<br>"); document.write("数字 3.14 转换为布尔后的值:"+Boolean(3.14)); //非0 document.write("<br>"); document.write("空对象 null 转换为布尔后的值:"+Boolean(null)); //null document.write("<br>"); document.write("非空对象 new Object() 转换为布尔后的值:"+Boolean(new Object())); //对象存在 document.write("<br>"); </script>
<script>
  document.write("空字符串''转换为布尔后的值:"+Boolean(""));  //空字符串
  document.write("<br>");
  document.write("非空字符'hello javascript '串转换为布尔后的值:"+Boolean("hello javascript"));  //非空字符串
  document.write("<br>");
  document.write("数字 0 转换为布尔后的值:"+Boolean(0));  //0
  document.write("<br>");
  document.write("数字 3.14 转换为布尔后的值:"+Boolean(3.14)); //非0 
  document.write("<br>");
  document.write("空对象 null 转换为布尔后的值:"+Boolean(null));  //null
  document.write("<br>");
  document.write("非空对象 new Object() 转换为布尔后的值:"+Boolean(new Object()));  //对象存在
  document.write("<br>");

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 6 :

Number()和parseInt()的区别

Number()和parseInt()一样,都可以用来进行数字的转换
区别在于,当转换的内容包含非数字的时候,Number() 会返回NaN(Not a Number)
parseInt() 要看情况,如果以数字开头,就会返回开头的合法数字部分,如果以非数字开头,则返回NaN
运行效果
<script> document.write("通过Number() 函数转换字符串'123' 后得到的数字:"+Number("123")); //正常的 document.write("<br>"); document.write("通过Number() 函数转换字符串'123abc' 后得到的数字:"+Number("123abc")); //包含非数字 document.write("<br>"); document.write("通过Number() 函数转换字符串'abc123' 后得到的数字:"+Number("abc123")); //包含非数字 document.write("<br>"); document.write("通过parseInt() 函数转换字符串'123' 后得到的数字:"+parseInt("123")); //正常的 document.write("<br>"); document.write("通过parseInt() 函数转换字符串'123abc' 后得到的数字:"+parseInt("123abc")); //包含非数字,返回开头的合法数字部分 document.write("<br>"); document.write("通过parseInt() 函数转换字符串'abc123' 后得到的数字:"+parseInt("abc123")); //包含非数字,以非数字开头,返回NaN document.write("<br>"); </script>
<script>
  document.write("通过Number() 函数转换字符串'123' 后得到的数字:"+Number("123"));   //正常的
  document.write("<br>");
  document.write("通过Number() 函数转换字符串'123abc' 后得到的数字:"+Number("123abc"));   //包含非数字
  document.write("<br>");
  document.write("通过Number() 函数转换字符串'abc123' 后得到的数字:"+Number("abc123"));   //包含非数字
  document.write("<br>");

  document.write("通过parseInt() 函数转换字符串'123' 后得到的数字:"+parseInt("123"));   //正常的
  document.write("<br>");
  document.write("通过parseInt() 函数转换字符串'123abc' 后得到的数字:"+parseInt("123abc"));   //包含非数字,返回开头的合法数字部分
  document.write("<br>");
  document.write("通过parseInt() 函数转换字符串'abc123' 后得到的数字:"+parseInt("abc123"));   //包含非数字,以非数字开头,返回NaN
  document.write("<br>");

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 7 :

String()和toString()的区别

String()和toString()一样都会返回字符串,区别在于对null的处理
String()会返回字符串"null"
toString() 就会报错,无法执行
运行效果
<script> var a = null; document.write('String(null) 把空对象转换为字符串:'+String(a)); document.write("<br>"); document.write('null.toString() 就会报错,所以后面的代码不能执行'); document.write(a.toString()); document.write("因为第5行报错,所以这一段文字不会显示"); </script>
<script>
  var a = null;
  document.write('String(null) 把空对象转换为字符串:'+String(a));  
  document.write("<br>");  
  document.write('null.toString() 就会报错,所以后面的代码不能执行');  
  document.write(a.toString());  
  document.write("因为第5行报错,所以这一段文字不会显示");  
</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-07-26 你们做的都太繁琐了
JGD



先判断是否为纯数字,再判断与parseFloat是否相同,不就结束了吗?
<html>

<head>
	<title></title>
	<meta http-equiv="content-language" content="text/html;charset=utf-8;" />
	<script type="text/javascript">
		function yanzheng(){
			var enter=document.getElementById("num").value;
			var isNum;
			var result=document.getElementById("yzResult");
			if(isNaN(Number(enter))){
				isNum=false;
			}else if(parseInt(enter)!=enter){
				isNum=false;
				console.log("float");
			}else{
				isNum=true;
			}
			if(isNum==true){
				result.innerHTML="是整数";
			}else{
				result.innerHTML="非整数";
			}
		}
	</script>
</head>
<body>
		<input type="text" id="num" />
		<button onclick="yanzheng()">验证输入的是否是数字</button>
		<span id="yzResult">ad</span>
</body>
</html></span>

							






答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-05-23 示例7第七行应该是第六行出错所以不显示吧
Lucifer丶
rt








答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2018-03-13 我看到你的document.write()函数里面,有些是用双引号,有些使用单引号,两者的区别是什么呢?
2017-12-10 示例2数字转字符串,转完类型还是数字啊
2017-10-31 请问怎么将字符串转换成2进制的数?
2017-09-29 如果第一个字符不是数字的话parseInt()都会返回NaN?
2017-05-31 示例7第五行报错问题
2017-04-20 为什么String对象还有一个toString()方法?
2017-04-01 代码
2017-04-01 代码
2017-03-21 "字符串的\"10abc\"转换为数字的:"+parseInt("10abc")




提问之前请登陆
关于 前端部分-JavaScript-类型转换 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 902680467
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图