var sj=Date();
document.write(sj.getHours());
var str="大家好!"
document.write(str.replace("好", "不好"));
大家好,第一个就不行,第二个就行?
请问为什么 date 对象必须加 new;
而string 对象为什么不用加 new?
我刚学 JavaScript ,所以这可是个 解剖麻雀 的问题,有利于我理解 JavaScript ;
谢谢了!
var sj=Date();
document.write(sj.getHours());
var str="大家好!"
document.write(str.replace("好", "不好"));
大家好,第一个就不行,第二个就行?
请问为什么 date 对象必须加 new;
而string 对象为什么不用加 new?
我刚学 JavaScript ,所以这可是个 解剖麻雀 的问题,有利于我理解 JavaScript ;
谢谢了!
Date是构造函数,new是操作符new Date()
就是创建一个日期对象
var s = 'abc'
typeof s //"string" 基本类型
var s = new String('abc')
typeof s //"object" 对象
所以就算要比较也是
// 一:
var s = String('大家好') // string
var s = new String('大家好') // object
// 二:
var sj=Date();
console.log(typeof sj) // string 返回的是一个字符串,当然不能使用日期对象的方法getHours
console.log(sj); // Sat Apr 02 2016 09:32:56 GMT+0800
var sj=new Date();
console.log(typeof sj); // object 返回的是对象,自然能使用日期对象的方法。
console.log(sj.getHours); // 9
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答895 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
javascript引用类型的值是一个实例或者说对象,它是通过
new
+ 构造函数创建。常见的引用类型包括Object
、Array
、Function
、String
、Number
、Boolean
、Date
等。在创建实例时我们都可以使用如下方式但有更简洁,并且更友好的方式来创建这些类型的实例叫字面量表示法如下
同时
String
、Number
、Boolean
属于特殊的引用类型,我们叫它基本包装类型。我们平时都是使用字面量来表示它们而很少用new
方式:但是我们为什么可以使用类似
str.slice()
呢? 要知道要是一个对象实例才有其对应的方法。引用类型与基本包装类型主要区别在于对象的生存期,使用new创建的对象会在执行流离开当前作用域之前一直保存在内存中,而自动创建的基本包装类型对象只存在于一行代码的执行瞬间,然后立即被销毁。