JS数字和字符串的运用
一.字符串
字符串的写法var text="123" 可以用单双引号来写,字符串字面量 (通过单引号或双引号定义) 和 直接调用 String 方法(没有通过 new 生成字符串对象实例)的字符串都是基本字符串。JavaScript会自动将基本字符串转换为字符串对象,只有将基本字符串可转化为字符串对象之后才可以使用字符串对象的方法。当基本字符串需要调用一个字符串对象才有的方法或者查询值的时候(基本字符串是没有这些方法的),JavaScript 会自动将基本字符串转化为字符串对象并且调用相应的方法或者执行查询。
字符串对象可以查询下列属性和值
长度(字符串空格也计算在内)、ascii码、charAt()根据下标返回指定的字符、charCodeAt():返回指定字符的ASCII码值、fromCharCode():根据指定的ASCII放回对应的字符、concat():连接字符串、字符串搜索相关、lastIndexOf():最后一次出现的位置、比较两个字符串、match():、search():根据正则表达式进行搜索、replace替换、截取字符串、split()将字符串拆分成数组、字符串大小写相关、trim() //移除字符串两侧的字符、产生锚点、产生链接、font-size、font-color、sub、bold().
下面来通过例子来了解这些:
// var str='king';
// console.log(typeof str); //string
// var strObj=new String('king');
// console.log(typeof strObj); //obj
// console.log(strObj[0]); // 数组的第一位是k
// console.log(strObj.length); //4
// console.log(strObj.valueOf()); //king 返回原始值
// console.log(strObj.toString()); //king
// console.log("nana"[0]); //n
// console.log("helloworld".length); //10 字符串空格也计算
----------------------------------------------------------------
var str=String('1234');
str=String(true);
str=String({x:1}); //var obj={}; 字面量
str=String(null); //输出为空
console.log(str);
---------------------------------------------------------------
var str='king';
charAt()根据下标返回指定的字符
console.log(str.charAt(0)); //k
console.log(str.charAt(1)); //i
console.log(str.charAt(2)); //n
console.log(str.charAt(3)); //g
console.log(str.charAt(10))
--------------------------------------------------------------- ; //当定义的字符串中没有第10位显示为空。和indexof 检查不到的值不一样 为-1
//var str='abcdef';
//charCodeAt(): 返回指定字符的ASCII码值
//console.log(str.charCodeAt(0));
//console.log(str.charCodeAt(100)); //没有第100位 为null 没有ascii值
//console.log(str.charCodeAt(-123)); //同理
---------------------------------------------------------------
ascii 表
//fromCharCode():根据指定的ASCII放回对应的字符
// console.log(String.fromCharCode(97)); //a
// console.log(String.fromCharCode(65,66,67)); // ABC
-----------------------------------------------------------------------
//concat():连接字符串
// var str='hello ';
// console.log(str.concat('world'));
// console.log(str.concat('world ','!'));
-----------------------------------------------------------------------
//字符串搜索相关
//var str='this is a test';
//console.log(str.indexOf('t')); //0
//console.log(str.indexOf('is')); //2
//console.log(str.indexOf('Is')); //没有出来-1
//console.log(str.indexOf('i')); //2
//console.log(str.indexOf('i',3)); //5 后面的3是规定字符串从第几个开始 检索
-----------------------------------------------------------------------
//通过indexOf()可以统计一个字符在指定字符串中出现的次数
// var str='sssssdlkfjlwk34jlksdfjlksjdlf234';
// var count=0;
// var pos=str.indexOf('s'); //从0开始
// while(pos!=-1){
// count++;
// pos=str.indexOf('s',pos+1);
// }
// console.log(count);
-----------------------------------------------------------------------
//lastIndexOf():最后一次出现的位置
//var str='this is a test';
//console.log(str.indexOf('is')); //2
//console.log(str.lastIndexOf('is')); //5
-----------------------------------------------------------------------
//比较两个字符串
// console.log('h'.localeCompare('j')); //-1 j的ascii码为106 后面大的取反值
// console.log('z'.localeCompare('a')); //1 后面的值小为正值
// console.log('a'.localeCompare('a')) ;//0 相等
// console.log('b'.localeCompare('B')); //1 后面的值小为正值
-----------------------------------------------------------------------
//match():找到一个或多个正则表达式的结果
//var str='this is a test of king show time';
//var re=/IS/i;
//console.log(str.match(re)); //index 为下标从1开始
//var str='QWERTYUIOPASDFGHJKLZXCVBNMqwertyuioasdfghjkzxcvbnm';
//console.log(str.match(/[a-f]/ig)); //i 是不分别大小写 g是全局
-----------------------------------------------------------------------
//search():根据正则表达式进行搜索
//var str='this is a test';
//console.log(str.search(/is/));
//console.log(str.search(/IS/)); 和indexof()没有为-1
//console.log(str.search(/IS/i));
-----------------------------------------------------------------------
//var str='this is a test';
//var newStr=str.replace(/IS/ig,'!'); //两个is都替换
// console.log(newStr);
// var str="2015-09-26";
//var newStr=str.replace(/(d{4})-(d{2})-(d{2})/,"$2/$3/$1"); //查找非数字的
//console.log(newStr);
-----------------------------------------------------------------------
//var str="2015-09-25";
//var newStr=str.replace(/(d{4})-(d{2})-(d{2})/,func);
//function func(match,d1,d2,d3){
///return [d2,d3,d1].join('/');
//}
//console.log(newStr);
-----------------------------------------------------------------------
//截取字符串
//var str='abcdef';
//console.log(str.slice(2));
//console.log(str.slice(0,2)); //2结束时不读
//console.log(str.slice(-3)); //-3开始
//console.log(str.slice(-4,-2)); //-2 左开右闭
//console.log(str.slice(0,-1));
//console.log(str.substr(3));
//console.log(str.substr(0,4));
-----------------------------------------------------------------------
//split()将字符串拆分成数组
//var str='2015-08-12';
//var arr=str.split('-');
// console.log(arr);
//var str='a b c d e f';
// var arr=str.split(' ');
// console.log(arr);
//arr=str.split(' ',2); //出来是a b
//console.log(arr);
-----------------------------------------------------------------------
//字符串大小写相关
// console.log("KING".toLowerCase()); //小写
// console.log("KING".toLocaleLowerCase()); //本地小写
// console.log('nana'.toUpperCase());
// console.log('nana'.toLocaleUpperCase());
-----------------------------------------------------------------------
//trim() //移除字符串两侧的字符
//var str=' abc ';
//alert("!"+str+"!");
//alert("!"+str.trim()+"!");
-----------------------------------------------------------------------
//产生锚点
//var str="this is a test";
// document.body.innerHTML=str.anchor('contents_anchor'); //写进body的html里面
//<a name="contents_anchor">this is a test</a>
-----------------------------------------------------------------------
//产生链接
//var title='this is of king show time';
//var url='http://phpfamily.org';
//document.write('Click Me to Visit My Blog'+title.link(url));
-----------------------------------------------------------------------
//document.write("<p>"+text.fontsize(20)+"</p>"); // 字体大小
//document.write("<p>"+text.fontColor("blue")+"</p>"); //bao
//document.write("<p>"+text.fontcolor("blue")+"</p>"); //蓝色字体
//document.write("<p>Subscript: " + text.sub() + "</p>") //下标
//document.write("<p>Superscript: " + text.sup() + "</p>") //上标
二、数字
Js只有一种数字类型(包括整型,浮点型),极大或极小的可用科学计数法来表示。(7.7123e+1),所有js数字均为64位,Js所有的数字都存储为浮点型。
小数的最大位数是17位
0开头的为八进制 0x开头的为16进制
console.log(Number.MAX_VALUE); 最大值
console.log(Number.MIN_VALUE);最小值
console.log(Number.NEGATIVE_INFINITY);极大值
console.log(Number.POSITIVE_INFINITY);极小值
IsNaN 判断是不是NaN
console.log(Number.isNaN(NaN)); true
console.log(Number.isNaN(Number.NaN)); true
console.log(Number.isNaN(0/0)); true
console.log(Number.isNaN('NaN')); false
console.log(Number.isNaN('')); false
console.log(Number.isNaN('123')); false
console.log(Number.isNaN(true)); false
console.log(Number.isNaN(undefined)); false
console.log(Number.isNaN(' ')); false
toFixed();四舍五入为指定小数位数的数字
var n=12345.6789;
console.log(n.toFixed()); 12346
console.log(n.toFixed(1)); 12345.7
console.log(n.toFixed(2)); 12345.68
console.log(n.toFixed(6)); 12345.678900
console.log(1.23e+20.toFixed(2)); 123000000000000000000.00
console.log(1.23e-20.toFixed(2)); 0.00
console.log(2.45.toFixed(1)); 2.5
toExponential(x);把对象的值转变为指数计数法,x规定小数位数
var n=77.1234;
console.log(n.toExponential()); 7.71234e+1
console.log(n.toExponential(2)); 7.71e+1
console.log(n.toExponential(4)); 7.7123e+1
Toprecision();对象的值超出指定位数时将其转换为指数计数法;
var n=5.1234567;
console.log(n.toPrecision()); 5.1234567
console.log(n.toPrecision(1)); 5
console.log(n.toPrecision(2)); 5.1
console.log(n.toPrecision(5)); 5.1235
console.log((1234.567).toPrecision(2)); 1.2e+3