示例:
var longString = "One piece " + "plus one more piece."
//结果:longString值为:"One piece plus one more piece."
方法二: 要将多个字符串累积为一个字符串,还可以使用"+="操作符:
示例:
var result = ""
result += "My name is Anders"
result += " and my age is 25"
//结果:result值为"My name is Anders and my age is 25"
方法三:方法concat(),它完成与"+"相同的功能:string.concat(value1, value2, ...)
示例:
var str4="字符串连接"
str4=str4.concat("use concat function connec string")
//结果:"字符串链接use concat function connec string"
1、js分为基本数据类型和引用数据类型2、string定义为基本数据类型,但是既然为基本数据类型为什么还可以调用方法呢?
let a = "hello world"
a.name = "张三"
console.log(typeof a)
console.log(a)
3、string还有另外一种创建的方法 new String("hello world")
let b = new String("hello world")
b.name = "赵四"
console.log(typeof b)
console.log(b.substring(0, 2))
new出来的字符串则是对象类型,在我们打印的时候可以看到,调用方法的时候是通过原型进行调用方法的
4、在使用字符串方法的时候内部是就行new了的操作从而调用的方法。
js中的基础类型有6种
5种基础类型:undefined null String Number Boolean
1中引用类型:Object
基础类型的string有如下定义方式:
这三种方式有什么区别吗?
str1、str2是普通的字符串,str3是个对象?什么原因呢?
用 typeof 验证一下
用 instanceof 验证一下
可以看出 str3 确确实实是个String对象了
再来看个有意思的事,如果给String加上自定义方法和属性呢?
虽然 str1、str2不是对象,但可以用String上的方法和属性
再看,如果直接给str1、str2定义方法和属性呢?
可以看出str1、str2是不能定义自己的方法和属性的,而str3可以
这就能看出 js 的神奇部分了,什么原理呢?
来看包装对象和原始资料类型
上面看到的str1、str2即为原始资料类型,str3为包装对象,通过typeof可以看出
但str1、str2不能自己定义属性和方法,却可以用String的属性和方法
总结一下
1、第一种和第二种方法定义出来的是原始资料类型,并储存于栈中,并向包装对象(new ..())借来方法和属性.
2、第三种是 包装对象,栈中储存堆指针,堆中储存内容。
关于堆、栈、指针的问题,咱们继续学习