71、offsetParent
offsetParent是一个只读属性,返回元素的最近的已定位(position不为 static)祖先元素。如果没有已定位的祖先元素,则 offsetParent为
body
元素。offsetParent 属性常用于计算元素的绝对位置,例如通过 offsetTop和 offsetLeft属性。这些属性返回元素相对于其 offsetParent元素的位置。如果该元素没有 offsetParent,则这些属性返回相对于文档的位置。
需要注意的是,offsetParent属性的值在某些情况下可能会被改变,例如将元素的 position属性从 static改变为其他值,或者通过 JavaScript 动态改变元素的 parentNode属性。因此,使用 offsetParent属性计算元素位置时需要注意这些变化。
72、clientLeft
clientLeft 表示一个元素的左边框的宽度,以像素表示。如果元素的文本方向是从右向左(RTL, right-to-left),并且由于内容溢出导致左边出现了一个垂直滚动条,则该属性包括滚动条的宽度。
clientLeft 不包括左外边距和左内边距。
提示: 你可以使用 style.borderLeftWidth 属性来获取元素左边框的宽度。
提示: 要返回元素顶部边框的宽度可以使用 clientTop 属性。
clientLeft 是只读的。
73、Object.create
Object.create() 是 JavaScript 中一个对象创建方法,它允许你创建一个新对象并指定该对象的原型。具体来说,它接收一个参数,该参数是新对象的原型,然后返回一个新对象,该对象的原型为传入的参数。
例如,下面的代码创建了一个 person 对象,然后使用 Object.create() 方法创建了一个新对象 student,并将 person 对象作为 student 的原型:
let person = {
name: 'John', age: 30,
sayHello() {
console.log('Hello!');
}
};
let student = Object.create(person);
此时,student 对象继承了 person 对象的属性和方法,可以通过 student 对象访问它们:
console.log(student.name); // 'John'
console.log(student.age); // 30
student.sayHello(); // 'Hello!'
需要注意的是,如果你想给新对象 student 添加自己的属性或方法,可以直接在 student 对象上添加,而不会影响到 person 对象。例如:
student.major = 'Computer Science';
student.study = function() {
console.log('Studying...');
};
这样一来,student 对象就具有了自己的 属性和 major 和 study方法。
74、Object.prototype
Object.prototype 是 JavaScript 中所有对象的原型对象。它是一个包含常用属性和方法的对象,可以被其他对象继承和使用。例如,一个数组对象可以继承 Object.prototype 中定义的 toString() 方法来将其转换为字符串。
可以使用 Object.getPrototypeOf() 方法来获取一个对象的原型对象。例如:
const myObj = {};
const myPrototype = Object.getPrototypeOf(myObj); // 返回 Object.prototype
Object.prototype 中包含的常用属性和方法包括:
- constructor: 对象的构造函数
- hasOwnProperty(): 判断对象是否包含指定的属性
- isPrototypeOf(): 判断当前对象是否是另一个对象的原型对象
- propertyIsEnumerable(): 判断对象的某个属性是否可枚举
- toLocaleString(): 返回对象的本地化字符串
- toString(): 返回对象的字符串表示
- valueOf(): 返回对象的值
需要注意的是,在 JavaScript 中,所有的对象都是 Object 的实例,因此它们都继承了 Object.prototype 中定义的属性和方法。
75、eval
eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。
如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。
eval("x=10;y=20;document.write(x*y)");
document.write("<br>" + eval("2+2"));
document.write("<br>" + eval(x+17));
以上例程会输出:
200
4
27
76、JSON.parse
JSON.parse() 是一个 JavaScript 函数,用于将 JSON 字符串解析为 JavaScript 对象。它接受一个 JSON 字符串作为参数,并返回相应的 JavaScript 对象。例如:
const jsonString = '{"name":"John","age":30,"city":"New York"}';
const obj = JSON.parse(jsonString);
console.log(obj.name); // 输出 "John"
console.log(obj.age); // 输出 30
console.log(obj.city); // 输出 "New York"
注意,JSON.parse() 只能解析符合 JSON 语法规范的字符串,否则会抛出语法错误。
77、JSON.stringify
JSON.stringify是一个JavaScript内置函数,它可以把一个JavaScript值(对象或者数组)转换成一个JSON字符串。
var objStr2 = "{\"name\": \"张三\", \"age\": 18, \"money\": 200.04}";
var obj = JSON.parse(objStr2);
console.log("JSON转对象",obj);
console.log("对象转JSON",JSON.stringify(obj));
// stringify() 将JSON对象或者数组转为字符串
以上例程会输出:
78、Math
Math 对象用于执行数学任务。
Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math()。
Math 对象方法
方法 | 描述 |
---|---|
abs(x) | 返回 x 的绝对值。 |
acos(x) | 返回 x 的反余弦值。 |
asin(x) | 返回 x 的反正弦值。 |
atan(x) | 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 |
atan2(y,x) | 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 |
ceil(x) | 对数进行上舍入。 |
cos(x) | 返回数的余弦。 |
exp(x) | 返回 Ex 的指数。 |
floor(x) | 对 x 进行下舍入。 |
log(x) | 返回数的自然对数(底为e)。 |
max(x,y,z,...,n) | 返回 x,y,z,...,n 中的最高值。 |
min(x,y,z,...,n) | 返回 x,y,z,...,n中的最低值。 |
pow(x,y) | 返回 x 的 y 次幂。 |
random() | 返回 0 ~ 1 之间的随机数。 |
round(x) | 四舍五入。 |
sin(x) | 返回数的正弦。 |
sqrt(x) | 返回数的平方根。 |
tan(x) | 返回角的正切。 |
tanh(x) | 返回一个数的双曲正切函数值。 |
trunc(x) | 将数字的小数部分去掉,只保留整数部分。 |
79、Date
Date 对象用于处理日期与时间。
创建 Date 对象: new Date()
以下四种方法同样可以创建 Date 对象:
Date 对象方法
方法 | 描述 |
---|---|
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份。 |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
getYear() | 已废弃。 请使用 getFullYear() 方法代替。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
setDate() | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
setFullYear() | 设置 Date 对象中的年份(四位数字)。 |
setHours() | 设置 Date 对象中的小时 (0 ~ 23)。 |
setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59)。 |
setMonth() | 设置 Date 对象中月份 (0 ~ 11)。 |
setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
setTime() | setTime() 方法以毫秒设置 Date 对象。 |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字)。 |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 |
setUTCSeconds() | setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。 |
setYear() | 已废弃。请使用 setFullYear() 方法代替。 |
toDateString() | 把 Date 对象的日期部分转换为字符串。 |
toGMTString() | 已废弃。请使用 toUTCString() 方法代替。 |
toISOString() | 使用 ISO 标准返回字符串的日期格式。 |
toJSON() | 以 JSON 数据格式返回日期字符串。 |
toLocaleDateString() | 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 |
toLocaleTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 |
toLocaleString() | 根据本地时间格式,把 Date 对象转换为字符串。 |
toString() | 把 Date 对象转换为字符串。 |
toTimeString() | 把 Date 对象的时间部分转换为字符串。 |
toUTCString() | 根据世界时,把 Date 对象转换为字符串。 实例: var today = new Date(); var UTCstring = today.toUTCString(); |
UTC() | 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 |
valueOf() | 返回 Date 对象的原始值。 |
80、for...in
for/in 语句用于循环对象属性。
循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
var obj = {
name: "张三",
age: 18
};
for(var key in obj) {
console.log(key);
}