当前位置: 首页 > wzjs >正文

营销型网站首页模板1元涨1000粉

营销型网站首页模板,1元涨1000粉,如何在门户网站做推广,大连华南网站制作公司普通字符类型和new String有什么区别:普通字符类型是string类型存在栈内存,new string是object存在堆内存中,普通字符类型是按值比较,new string是按引用比较,普通字符类型占用的内存较少,new string占用的…

普通字符类型和new String有什么区别:普通字符类型是string类型存在栈内存,new string是object存在堆内存中,普通字符类型是按值比较,new string是按引用比较,普通字符类型占用的内存较少,new string占用的内存比较多,普通字符类型之所有能使用对象才有的方法(如 slice()、substring()、toUpperCase() 等)。这是因为 JavaScript 引擎在背后自动执行了"原始值包装类型"的转换过程。

核心机制:自动装箱(Auto-Boxing)

当对原始值字符串调用方法时,JavaScript 引擎会执行以下步骤:

  1. 临时创建包装对象:自动创建一个对应的 String 对象

    javascript

    const temp = new String(原始字符串);
  2. 调用方法:在这个临时对象上调用方法

    javascript

    const result = temp.方法名();
  3. 销毁临时对象:使用完毕后立即丢弃这个临时对象

  4. 返回结果:将方法调用的结果返回

实际示例

javascript

const str = "hello world";// 当调用方法时,实际上发生了:
const temp = new String(str);  // 1. 创建临时String对象
const result = temp.slice(0, 5);  // 2. 调用方法
temp = null;  // 3. 销毁临时对象
return result;  // 4. 返回"hello"

为什么这样设计?

  1. 保持原始类型的高效性

    • 原始类型存储在栈内存,访问速度快

    • 只在需要方法时临时创建对象

  2. 提供对象式的便利性

    • 让原始类型也能使用丰富的方法

    • 保持语言使用的便利性和一致性

  3. 隐藏实现细节

    • 开发者无需关心底层转换

    • 语法更加简洁直观

证明自动装箱的存在

可以通过以下方式观察到这一机制:

javascript

const str = "test";
str.customProp = "value";  // 尝试添加属性console.log(str.customProp);  // undefined
// 因为临时对象已被销毁,属性添加无效

与显式 String 对象的区别

特性原始字符串new String() 创建的字符串
自动装箱临时创建,用完即毁持久对象
添加属性无法保留可以保留
内存使用更高效占用更多内存
类型比较typeof === "string"typeof === "object"

哪些方法可以这样使用?

所有 String.prototype 上的方法都可以这样调用,包括:

  • 提取方法:slice()substring()substr()

  • 搜索方法:indexOf()includes()startsWith()endsWith()

  • 大小写转换:toUpperCase()toLowerCase()

  • 修剪方法:trim()trimStart()trimEnd()

  • 分割方法:split()

  • 替换方法:replace()replaceAll()

  • 其他方法:charAt()charCodeAt()codePointAt() 等

性能考虑

虽然自动装箱很方便,但在极端性能敏感的场景(如循环中大量调用字符串方法),可以考虑:

  1. 缓存方法引用

    javascript

    const slice = String.prototype.slice;
    slice.call(str, 0, 5);
  2. 避免不必要的调用

    javascript

    // 不好的做法
    for (let i = 0; i < str.length; i++) {str.charAt(i);  // 每次循环都会创建临时对象
    }// 更好的做法
    for (const char of str) {// 直接访问字符
    }

总结

JavaScript 的原始字符串能够使用方法是因为:

  1. 引擎自动执行"装箱"操作,临时转换为 String 对象

  2. 调用方法后立即销毁临时对象

  3. 这种设计既保持了原始类型的高效性,又提供了对象式的便利方法

  4. 开发者无需显式创建 String 对象即可使用所有字符串方法

这种机制体现了 JavaScript 作为动态语言的灵活性和便利性,使得对原始值的操作更加直观和方便。

http://www.dtcms.com/wzjs/91456.html

相关文章:

  • 威海网站开发网络公司培训课程
  • 加盟型网站网站推广怎么做有效果
  • wordpress测试数据库连接seo的方法有哪些
  • 网站开发硬件需求百度推广一年收费标准
  • app开发公司怎么查看seo排名第一
  • 搭建网站 赚钱谷歌seo外链平台
  • 最好看免费观看高清大全一影视下载seo培训价格
  • 大理网站建设aso优化工具
  • wordpress菜单导航中山口碑seo推广
  • 哪些网站适合用自适应广点通官网
  • 网站建设网页与数据库连接百度有效点击软件
  • 网站建设公司怎么做业务网络销售是做什么的
  • 网站设计简单吗全球疫情最新数据统计
  • 亚马逊网站建设的意义公司网站的推广方案
  • 深圳外贸响应式网站建设网站优化基本技巧
  • 长江商学院 网站建设国内新闻最新消息
  • 织梦游戏网站源码百度搜索优化建议
  • 包装技术支持 东莞网站建设网站关键词排名批量查询
  • 上海静安网站建设网站怎么才能被百度收录
  • asp个人网站杭州全网推广
  • 会展行业门户网站建设百度最贵关键词排名
  • 外贸商城网站 定制网站怎么优化自己免费
  • 怎么为网站做外链创建自己的网站
  • 电子商务网站建设具体方案网络推广的基本方法
  • 晋江网站建设价格百度小说搜索排行榜
  • 怎么用idea做响应式网站促销策略的四种方式
  • 怎么样做国外推广网站sem培训班学费哪个好
  • 用服务器建立网站吗百度平台商家我的订单查询
  • 网站开发 私活百度推广哪家做的最好
  • 做网站建设公司网络营销和网络销售的关系