前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript笔记(10) 第一阶段结束

JavaScript笔记(10) 第一阶段结束

作者头像
y191024
发布2022-09-20 20:08:25
3150
发布2022-09-20 20:08:25
举报
文章被收录于专栏:睡不着所以学编程

这是第一部分的最后一篇啦,不过内容真的又多又杂,必须复习一遍才行.

字符串对象

学习完Math和数组对象,现在学习字符串对象,学习完以后要复习了,感觉好久没复习.

我们之前使用过str.length,但是复杂数据类型才有属性和方法,为什么这个简单数据类型也有length属性呢?

这是因为JS将简单数据类型包装成了复杂数据类型.

基本包装类型

为了方便操作基本数据类型,JavaScript还提供了三个特殊的引用类型:String, Number,和Boolean.

基本包装类型就是把简单的数据类型包装成复杂的数据类型,这样基本数据类型就有了属性和方法.

相当于是做了以下的步骤:

原来的代码:

代码语言:javascript
复制
var str = 'andy';
console.log(str.length);

1.将简单的数据类型包装成复杂数据类型

代码语言:javascript
复制
var temp = new String('xxx');

2.把临时变量的值给str

代码语言:javascript
复制
str = temp;

3.销毁这个临时变量

代码语言:javascript
复制
temp = null;
  • 字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成后会返回一个新的字符串

字符串的不可变

指的是里面的值不可变,虽然看上去可以改变内容,但其实只是地址变了,内存中开辟了新的一个内存空间,也就是说,一开始我们var str = 'pink', 然后我们又 var str = 'red', 虽然看似值改变了,但是'pink'这个值还是存在的,所以我们不要大量的对字符串进行赋值,也不要大量的进行拼接字符串,否则会占很多的内存资源.

根据字符返回位置,和之前数组的方法是类似的.

indexOf( )这个函数其实不止一个参数,str.indexOf('要查找的字符', [起始的位置])

比如第二个log就是输出从索引号3开始查找的'春'字出现的位置.

做一个案例:

我随意打了一个字符串,试了一下,这是我的方法:

下面是老师的方法:

我恨while循环...刚刚一个没注意又给我电脑搞死机了,感觉要炸了...

根据位置返回字符

刚好和上面是相反的:

1.charAt(index):

2.chatCodeAt(index): 返回相应索引号的字符ASCII值 目的:判断用户按下了哪个键

3.str[ ] : 这是H5新增的方法,最方便,但是有兼容性的问题.

小案例:

想了半天也没想出来...唉,emo了好久...

老师的做法:

实在是想不到,唉.

字符串操作方法

替换字符 replace( )

但是注意,他只会替换第一个字符.

那么怎么将字符串中的所有想替换的元素都换掉呢?

我们可以遍历数组:

将字符串转换成数组 split('分隔符')

分割符指的是分割这个字符串的依据,用的','就会按照','将字符串分开,组成数组.

课下查询

简单数据类型和复杂数据类型

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型.

  • 值类型: 简单数据类型/基本数据类型,在存储变量中存储的是值本身,因此叫做值类型: string, number, boolean, undefined, null(注意null的类型是object)
  • 引用类型: 复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型,通过new关键字创建的对象(系统对象,自定义对象),如Object,Array,Date等.

堆栈空间分配区别

1.(操作系统): 由操作系统自动分配释放存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈;简单数据类型存放在栈里面.

2.(操作系统): 存储复杂类型(对象),一般由程序员分配释放,如果不释放,由垃圾回收机制回收.复杂数据类型存放到堆里面,真正的对象实例在堆里.

注意:JavaScript中没有堆栈的概念,通过堆栈的方式,可以让我们更容易理解代码的一些执行方式,便于将来学习其他语言.

简单类型传参

函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到外部变量.

复杂类型传参

函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象.

第一部分结束!现在要去复习了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 睡不着所以学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档