• 5.6 基本包装类型


    5.6 基本包装类型(Boolean,Number,String)
    基本类型不是对象为什么会有方法呢?(黑人?)
    后台处理了一系列的操作,以下就是例子,创建后立即销毁

    var s1 = "some text";
    var s2 = s1.substring(2);
    ===
    var s1 = new String("some text");
    var s2 = s1.sbustring(2);
    s1 = null;
    

    引用类型和基本包类型的主要区别就是对象的生存周期
    引用类型:执行流离开当前作用域之前,都一直保存在内存中
    基本类型包:只存在于代码执行的瞬间,然后立即销毁

    var s1 = "some text";
    s1.color = "red";
    l(s1.color);//undefined
    
    ===
    //使用new调用基本包类型的构造函数和直接调用痛么的转型函数是不一样的。
    var value = "24";
    var number = Number(value);
    l(typeof number);//number
    var number = new Number(value);
    l(typeof number);//object
    

    5.6.1 Boolean类型(建议永远不要用Boolean对象)
    Boolean 重写了valueOf方法: 返回基本类型true,false
    重写了toString方法, 返回字符串"true","false"

    var falseObject = new Boolean(false);
    var result = falseObject && true;
    l(result);//true
    
    var falseValue = false;
    result = falseValue && true;
    l(result);//false
    

    5.6.2 Number类型
    valueOf: 返回对象基本类型的数值
    toString: 字符串形式的数值
    toLocalString: 字符串形式的数值
    toFixed: 会按照指定的小数位返回数值的字符串表示
    toExponential: 返回以指数表示法(e表示法)
    toPrecision: 可能会返回固定大小的个数,也可能返回指数格式,根据接受的参数(数值的所有位数)

    //toString
    var num = 10;
    l(num.toString());//10
    l(num.toString(2));//1010
    l(num.toString(8));//12
    l(num.toString(10));//10
    l(num.toString(16));//a
    //toFixed
    var num = 10;
    l(num.toFixed(2))//10.00
    //toExponential
    var num = 10;
    l(num.toExponential(1))//1.0e+1
    var num = 99;
    //toPrecision
    l(num.toPrecision(1));//1e+2
    l(num.toPrecision(2));//99
    l(num.toPrecision(3));//99.0
    

    5.6.3 String类型
    实例

    var stringObject = new String("hello world");
    

    valueOf,toLocaleString,toString都返回对象所表示的基本字符串值。
    length: 字符串的字符数量。

    1. 字符方法:charAt() charCodeAt()
    var stringValue1 = "hello world";
    l(stringValue1.charAt(1));//e
    
    l(stringValue1.charCodeAt(1));//101
    

    2.字符串操作方法: concat(+),slice, substr, substring
    concat: 拼接字符串,不过更多时候是用+拼接

    var stringValue = "hello";
    var result = stringValue.concat(" world");
    l(result);//hello world
    l(stringValue);//hello
    

    slice: 第一个参数是开始位置,第二个参数表示子字符串到哪里结束。(负数情况,负数值加上字符串长度)
    substr: 第一个参数是开始位置,第二个参数表示返回字符串个数(负数情况,负数值加上字符串长度,第二个参数变为0)
    substring: 第一个参数是开始位置,第二个参数表示子字符串到哪里结束。(负数变为0)

    var stringValue = "hello world";
    l(stringValue.slice(3));//lo world
    l(stringValue.substring(3));//lo world
    l(stringValue.substr(3));//lo world
    
    l(stringValue.slice(3, 7));//lo w
    l(stringValue.substring(3, 7));//lo w
    l(stringValue.substr(3, 7));//lo worl
    
    //负数情况
    var stringValue = "hello world";
    l(stringValue.slice(-3));//rld
    l(stringValue.substring(-3));//hello world
    l(stringValue.substr(-3));//rld
    
    
    l(stringValue.slice(3, -4));//low
    l(stringValue.substring(3, -4));//hel
    l(stringValue.substr(3, -4));//
    

    3.字符串位置方法(indexOf, lastIndexOf)
    返回字符串位置,没有找到返回-1
    第二个参数是从指定位置开始搜索

    var stringValue = 'hello world';
    l(stringValue.indexOf('o'));//4
    l(stringValue.lastIndexOf('o'));//7
    
    
    var stringValue = "Lorem ipsum dolor sit amet, consectetur adipicicing elit";
    var position = new Array();
    var pos = stringValue.indexOf("e");
    
    while(pos > -1){
    	position.push(pos);
    	pos = stringValue.indexOf("e", pos+1);
    }
    
    l(position);//[3, 24, 32, 35, 52]
    
    
    1. trim() 方法
      删除前置以及后置所有空格,然后返回结果
    var stringValue = " hello world  ";
    var trimmedStringValue = stringValue.trim();
    l(stringValue);// hello world
    l(trimmedStringValue);//hello world
    

    5 字符串大小写转换方法(在不知道自己代码将在什么语言环境下运行,针对地区的方法更稳妥)
    toLocaleUpperCase
    toUpperCase
    toLocaleLowerCase
    toLowerCase

    var stringValue = "hello wold";
    l(stringValue.toLocaleUpperCase());//HELLO WORLD
    l(stringValue.toUpperCase());//HELLO WORLD
    l(stringValue.toLocaleLowerCase());//hello world
    l(stringValue.toLowerCase());//hello world
    
    1. 字符串的模式匹配方法
      match: 只接受一个参数,要么是正则表达式,要么是RegExp对象
    var text = "cat,bat,sat,fat";
    var pattern = /.at/;
    //与pattern.exe(text) 类似
    var matches = text.match(pattern);
    
    l(matches.index);//0 
    l(matches[0]);//cat
    

    search: 返回字符串中第一个匹配项的索引,没有找到返回-1

    var text = "cat,bat,sat,fat";
    var pos = text.search(/at/);
    l(pos);//1
    

    replace: 第一个参数是RegExp对象或者一个字符串,第二个参数是一个字符串或者一个函数

    var text = "cat,bat,sat,fat";
    var result = text.replace('at', 'ond');
    l(result);//cond,bat,sat,fat
    result = text.replace(/at/g,"ond");
    l(result);//cond,bond,sond,fond
    
    //字符序列
    var text = "cat,bat,sat,fat";
    result = text.replace(/(.at)/g, "world, ($1)");
    l(result)//world, (cat),world, (bat),world, (sat),world, (fat)
    

    split: 根据指定的分割符号将字符串转换为数组

    var colorText = "red,blue,green,yellow";
    var color1 = colorText.split(',');
    var color2 = colorText.split(',',2);
    var color3 = colorText.split(/[^\,]+/);
    
    l(color1);//["red", "blue", "green", "yellow"]
    l(color2);//["red", "blue"]
    l(color3);//["", ",", ",", ",", ""]
    

    7.localeCompare(比较位置)

    var stringValue = "yellow";
    l(stringValue.localeCompare('brick'));//1
    l(stringValue.localeCompare('yellow'));//0
    l(stringValue.localeCompare('zoo'));//-1
    

    8.fromCharCode

    l(String.fromCharCode(104, 101, 108, 108, 111))//hello
    

    9.HTML方法(早期)

  • 相关阅读:
    文件的打开和保存
    eclipse快捷键汇总
    FileNameExtensionFilter文件过滤
    java中文件保存、打开文件对话框
    FileInputStream(字节流)与fileReader(字符流) 的区别
    Java文本编辑器中遇到的问题详解
    前端基础 之 BOM和DOM
    前端基础 之JS
    前端基础 之 CSS
    前端基础之 HTML
  • 原文地址:https://www.cnblogs.com/caijw/p/8214547.html
Copyright © 2020-2023  润新知