重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、 基本数据类型
站在用户的角度思考问题,与客户深入沟通,找到通许网站设计与通许网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、申请域名、网页空间、企业邮箱。业务覆盖通许地区。
在javascript中四种基本的数据类型:数值(整数和实数)、字符串型(用“”号或‘''括起来的字符或数值)、布尔型(使True或False表示)和空值。
2、常量
·整型常量
javascript的常量通常又称字面常量,它是不能改变的数据。其整型常量可以使用十六进制、八进制和十 进制表示其值。
·实型常量
实型常量是由整数部分加小数部分表示,如12.32、193.98 。可以用科学或标准方法表示:5E7、4e5等。
·布尔值
布尔常量只有两种状态:True或False。 它主要用来说明或代表一种状态或标志,以说明操作流程。
·字符型常量
使用单引号(‘)或双引号(“)括起来的一个或几个字符。如 This is a book of javascript 、3245、ewrt234234 等。
·空值
javascript中有一个空值null,表示什么也没有。如试图引用没有定义的变量,则返回一个Null值。
3、 变量
变量的主要作用是存取数据、提供存放信息的容器。对于变量必须明确变量的命名、变量的类型、变量的声明及其变量的作用域。
·变量的命名
javascript中的变量命名同其计算机语言非常相似,这里要注意以下两点:
A 、必须是一个有效的变量,即变量以字母开头,中间可以出现数字如test1、
text2等。除下划线(-)作为 连字符外,变量名称不能有空格、(+)、
(-)、(,)或其它符号。
B 、不能使用javascript中的关键字作为变量。在javascript中定义了40多
个关键字,这些关键是在其内部使用的,不能作为变量的名称。如Var、
int、double、true不能作为变量的名称。在对变量命名时,最好把变量的
意义与其代表的意思对应起来,以免出现错误。
·变量的类型
在javascript中,变量可以用命令Var作声明:
var mytest;
该例子定义了一个mytest变量。但没有赋予它的值。
Var mytest=This is a book
该例子定义了一个mytest变量, 同时赋予了它的值。
在javascript中,变量以可以不做声明,而在使用时再根据数据的类型来确定其变量的类型。 例如:
x=100 、y=125 、xy= True 、cost=19.5等。
其中x整数,y为字符串,xy为布尔型,cost为实型。
·变量的声明及其作用域
javascript变量可以在使用前先声明,并可赋值。通过使用var关键字对变量作声明。对变量作声明的最大好处就是能及时发现代码中的错误;因为javascript是采用动态编译的,而动态编译是不易发现代码中的错误,特别是变量命名的方面。对于变量还有一个重要性──那就是变量的作用域。在javascript中同样有全局变量和局部变量。全局变量是定义在所有函数体之外,其作用范围是整个函数;而局部变量是定义在函数体之内,只对其该函数是可见的,而对其它函数则是不可见的。
html
head
title计算0的个数/title
script type="text/JavaScript"
!--
function def()
{
//定义变量
var eat = document.getElementById("eat").value;
var eat2 = document.getElementById("eat2").value;
var eat3 = document.getElementById("eat3").value;
if(!checknum(eat))
{
alert("eat不是实数");
return;
}
if(!checknum(eat2))
{
alert("eat2不是实数");
return;
}
if(!checknum(eat3))
{
alert("eat3不是实数");
return;
}
document.getElementById("res").value = count0(eat) + count0(eat2) + count0(eat3);
}
//检验是否为实数
function checknum(str)
{
if(str.match(/^\-?([1-9]\d*|0)(\.\d*)?$/ )!=null)
{
return true;
}
else
{
return false;
}
}
//分别求三个输入框0的个数
function count0(str)
{
var iRet = 0;
var ii = 0;
for(ii;ii=str.length;ii++)
{
if (str.charAt(ii)=='0')
{
iRet++;
}
}
return iRet;
}
--
/script
noscript
!--
不支持javascript脚本
--
/noscript
/head
body
form name="form1"
shuru1input type="text" size =10 name="eat" id="eat" br
br
shuru2input type="text" size =10 name="eat1" id="eat2" br
br
shuru3input type="text" size =10 name="eat2" id="eat3" br
input type="button" value="晖蜗世" onClick="def()"br
input type="text" size =75 name="res" id="res"br
input type="reset"
form
/body
/html
一直知道js的浮点数计算是不精确的, 0.1 + 0.2 !== 0.3,但是也就知道而已,解决方法却不怎么注意,所以刚做一个项目,尽管了解浮点数精度不精确的问题,但是还是掉坑里了。在此再次默默告诉自己要警惕,端正心态,不可掉以轻心!!!所以下面就分享一些加减乘除的方法。
原理: 把数字转换成字符串,然后从小数点部分切割成两部分,分别算出两个因数的小数点右边的长度,然后用两个因数的小数点右边长度最大的数再乘以10,相当于两个都放大了n倍,然后相加,然后缩小n倍。
注意,这里的放大用了乘法times函数(下面介绍),因为浮点数直接乘以100有可能出现精度不够的情况,如下图
原理和加法一样,放大n倍后相减再缩小n倍
乘法原理稍微变点,放大倍数n是 ‘两个小数点后面长度之和’ 而不是 ‘两个小数点后面长度这两者之间的最大值’
除法原理和乘法一样
这也是一个坑,比如你要保留两位小数,四舍五入的话就要看小数点第三位后面的数字来决定,如2.445四舍五入后就是2.45; 2.444四舍五入就是2.44;做这个需求的时候,我第一反应是Math.toFixed(2),结果是bug百出啊,这里就不举例了,有兴趣可以自己尝试。然后我是怎么解决的呢?百度了一下,也是得到一些半成品不严谨的函数,原理也很简单,先放大倍数,然后利用Math.round()取整
以上加减乘除方法基本满足一般业务需求了,尤其是电商。但是如果数字计算时超出了 2的1024次方减1 ,也就是 9007199254740992 这个数字的话就不适合了,因为从 2^1024 开始就变成了 Infinity。
通过正则表达式判断
var reg = /^\+?[1-9][0-9]*$/;
var number = 1000;
// 判断是否是正实数
if(reg.test(number)){
console.log('是正实数');
}
else{
console.log('不是正实数');
}
reg = /^\+?[1-9][0-9]*$/; //正则表达式
number // 你要判断的数
reg.test(muber); // 返回true 或 false 判断是否是正实数