jsstring转bigdecimal_JS⼊门学习
⼀、概念
JavaScript的国际标准是ECMAScript。JavaScript前 ⾝是LiveScript,后改为JavaScript,是⼀种基亍对象和事件驱动、且可以与HTML标记语⾔混合使⽤的脚本语⾔,其编写的程 序可以直接在浏览器中解释执⾏。
javaScript 与 java 的区别
本质上java 和 js 是两门语⾔,并没有本质上的练联系
⼆、如何书写 js 代码
在HTML代码中书写,三种⽅式
1、先写好JS⽂件,通过script标签引⼊
/** * Created by 11497 on 2019/4/29. */
2、在script标签中直接书写JS代码
<script> function hrllo(){ alert("hello,我是JS") } </script>
3、直接在HTML代码中写
三、变量
JavaScript 是⼀种弱类型的脚本语⾔,变量的声明(变量使⽤之前必须加var声明,编程规 范) ,可以通过var关键字来声明⼀个变量,不能使⽤未经声明的变量
var a=1; var a, b=2, c; var date = new Date(); var array = new Array();
全局变量和局部变量
全局变量 :在⽅法外部声明的变量 ⽅法内部,没有加var关键字声明的变量
局部变量 :⽅法内部,使⽤var声明的变量
变量数据类型
undefined未定义 (声明了变量但从未赋值 )
null空 (赋值为null)
boolean布尔型 (true,false)
字符串string (单引号、双引号均可)
数值number ,包括整数和⼩数,NaN(Not a Number),Infinity, -Infinity
对象object
使⽤typeof可以得出数据类型
function testDataType() { var a; console.log(typeof a, a); var b = null; console.log(typeof b, b); var c = true;
console.log(typeof c, c); var d = '123'; console.log(typeof d, d); var e1 = 123; //整型 console.log(typeof e1, e1); var e2 = 123.45; //浮点型 console.log(typeof e2, e2); var e3 = 1/0; //Infinity⽆穷⼤ console.log(typeof e3, e3); var e4 =
Number("haha"); //NaN = Not a Number console.log(typeof e4,e4) var f = new Array(); console.log(typeof f,f); }
数据类型转换
转换为数值类型:Number(mix)
如果是布尔值,true和false分别被转换为1和0
如果是数字值,返回本⾝。 如果是null,返回0.
如果是undefined,返回NaN。
如果是字符串,遵循以下规则:
如果字符串中只包含数字,则将其转换为⼗进制(忽略前导0)
如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0)
如果是空字符串,将其转换为0
如果字符串中包含⾮以上格式,则将其转换为NaN ‘ssd2342df’
function transferNumber(){ var b1 = false; var n1 = Number(b1); console.log(n1); var c = null; var n2 = Number(c); console.log(n2); var e; var n3 = Number(e); console.log(n3); var f = "fadsf123123adfds"; var n4 = Number(f);
console.log(n4); }
转换为字符串类型:String(mix) – 如果是null,返回”null” – 如果是undefined,返回”undefined”
function transferString(){ var a = null; var b; console.log(String(a)); console.log(String(b)); var c = true;
console.log(String(c)); }
转换为布尔类型:Boolean(mix) – 以下值会被转换为false:false、” ”、0、NaN、null、undefined,其余任何值都会 被转换为true。
function transferBoolean(){ var a = ""; var b; var c = null; var d = 0; var e = Number("haha"); console.log(Boolean(a)); console.log(Boolean(b)); console.log(Boolean(c)); console.log(Boolean(d)); console.log(Boolean(e));
console.log(Boolean("kjhasdkjfhs")); console.log(Boolean(123)); }
数据类型转换
布尔型,字符串,数字的转化
布尔和数字:布尔⽤number⽅法现在转成数字型,在进⾏运算。
布尔和字符串:变成字符串,等同于字符串连接
数字和字符串:变成字符串,等同于字符串连接
unction test() { //布尔型、字符串、数字的转化 var a = true; var b = "888" + a; var c = 99 + a; console.log(b); // 888true console.log(c); // 100 //数字和字符串转化 var d = 33; var e = "44"; var f = d + e; var g = 3 * "4"; console.log(f) // 3344 console.log(g) // 12 //null、布尔型、字符串、数字的转化 var h = null; var h2 = h + 3; console.log(h2) // 3 var h3 = "aa" + h; console.log(h3) // aanull
布尔型,字符串、数字的⽐较
布尔型、数值型、字符串型 在进⾏相互==⽐较时,不为数字的那⼀⽅⾃动调⽤Number()⽅法
function test3() { var a = 1; var b = true; var c = "true"; var d = "1"; console.log(a==b); //true console.l
og(a==c); //false console.log(a==d); //true console.log(b==c); //false console.log(b==d); //true }
null和undefined互相是相等,且⾃⾝也相等,除此之外和谁都不等,NaN⽐较特殊,他和⾃⼰都不相等
function test04() { console.log("zzz" == undefined); //false console.log("zzz" == null); //false console.log(1 == undefined);
//false console.log(1 == null); //false console.log(0 == undefined); //false console.log(0 == null); //false console.log(false == undefined); //false console.log(false == null); //false console.log(null == undefined); //true console.log(undefined == undefined); //true console.log(null == null); //true } // test04(); function test05() { //NaN⽐较特殊,他和⾃⼰都不相等 var a = Number("haha"); var b = Number("haha"); console.log(a == b); console.log(NaN == NaN); }
1.==符号在判断左右两边数据是否相等时,如果数据类型⼀致,直接⽐较值即可
2.==符号左右数据类型不⼀致时,如果两⽅数据为布尔型、数值型、字符串型时,不为数字的那⼀⽅⾃动调⽤Number()⽅法
3.undefined和null这两者互相相等,及⾃⾝也相等,除此之外和谁都不想等
4.NaN⽐较特殊,他和⾃⼰都不相等
5.当数值型、字符串型、布尔型和对象进⾏⽐较时,对象调⽤toString()⽅法得到⼀个字符串
6.对象和对象进⾏⽐较时,直接⽐较内存地址
7.任何对象加!强制转false
function test() { console.log('' == '0') //类型相同,⽐较值,值不同,所以false console.log(0 == '') //类型不同,String转Number,空字符串转为0,变成0==0,所以true console.log(0 == '0') //类型不同,String转Number,'0'转成0,变成0==0,所以true console.log(false == 'false') //类型不同,Boolean转Number,即0=='false',然后'false'转Number,为0==NaN,所以falseconsole.log(false == '0') //类型不同,Boolean转Number,即0=='0',就变成第3个例⼦,所以true console.log(false == undefined) //对于undefined和null,只有它们本⾝两个⽐较才是true,其他都是false,所以false console.log(false == null) //对于undefined和null,只有它们本⾝两个⽐较才是true,其他都是false,所以false console.log(null == undefined) //对于undefined和null,只有它们本⾝两个⽐较才是true,其他都是false,所以true console.log(true == 2) //类型不同,Boolen转Number,即1==2,所以false console.log(NaN == NaN) //NaN⾮常特殊,和⾃⾝也不相等,所以false console.log(' trn ' == 0) //类型不同,String转Number,空String都将转成0,即0==0,所以true console.log(0 == []) //对象类型[]调⽤
toString()转为"",即0=="",即0==0,所以true console.log(0 == ['']) //对象类型['']调⽤toString()转为"",即0=="",即0==0,所以true console.log('0' == []) //对象类型[]调⽤toString()转为"",即'0'=="",类型相同,值不同,所以false console.log('0' == [0]) //对象类型[0]调⽤toString()转为"0",
即'0'=="0",类型相同,值也相同,所以true console.log(true == [1]) //对象类型[1]调⽤toString()转为"1",即1=="1",转1==1,所以true console.log([] == []) //对象类型,⽐较引⽤地址,两个[]是不同的引⽤地址,所以false console.log(![] == []) //加!强制转Boolean,任何对象都是true,取反即false==[],转为0=="",即0==0,所以true console.log(!{} == {}) //即false=={},转为
false=="[object Object]",即0==NaN,所以false }
数组
⼀、创建数组
1.创建⼀个空数组
var arr = new Array();
2.创建⼀个具有长度的空数组
var arr2 = new Array(size)
3.创建⼀个具有元素的数组
var arr3 = new Array(ele1,ele2, ... ,eleN)
4.创建⼀个空数组或具有元素的数组
var arr4 = [ele1,...,eleN]
js脚本编程入门⼆、数组属性
length 表⽰数组的长度,可以利⽤该属性清空数组(length = 0)
三、数组⽅法
push( ele ):向数组的尾部添加⼀个元素,返回数组的新长度
unshift( ele): 向数组的头部添加⼀个元素,返回数组的新长度
pop():从数组的尾部取出⼀个元素,返回该元素本⾝
shift():从数组的头部取出⼀个元素,返回该元素本⾝
join( ele ) : 使⽤指定的ele字符连接数组中的每个元素,并将其作为⼀个字符串返回
concat( arr1,arr2,...,arrN ):拼接给定的数组元素,返回⼀个新数组
reverse():反转数组
sort():对数组的元素进⾏排序(⾃然顺序)
splice(start,count,newEle):从⼀个数组中移除⼀个或多个元素,如果必要,在所移除元素的位置上插⼊新元素,返回所移除的元素。参数:
start 开始索引
count 移除元素的数量
newEle 要加⼊的新元素,该参数可以省略
slice(start,end):截取数组的⼀段,返回⼀个新数组
参数:
start 开始索引
end结束索引(不包含),该参数可以省略(截取到数组末尾)
四、遍历数组
for (var i = 0 ; i< 数组的长度;i++)
for (var arrIndex in 数组)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论