原JS
<SCRIPT LANGUAGE="JavaScript">
var o = { x: 8,
valueOf: function(){
return this.x + 2;
},
toString: function(){
return this.x.toString();
}
}, result = o < "9";
alert(o);
</SCRIPT>
分析:有疑问的地方我打上问号
<SCRIPT LANGUAGE="JavaScript">
// 如果valueOf和toString 方法都没有则会调用Object类的toString 返回字符串[object Object]是栈的引用类型的字符串表示,"[object Object]" 与数字字符串相比永远返回false,此时比较的是字符串
var o = {
x: 8,
valueOf: function(){
alert("valueOf 调用");
// 在比较大小的时候:对象先转换成数值,如果有valueOf方法,会调用valueOf,而不去调用toString
// 如果没有valueOf 对象回去调用toString 并返toString的数值
return this.x + 2;
},
toString: function(){
// alert("toString调用");
return this.x.toString(); // 在字符串比较大小的时候如果前面是数字后面是字符串 则返回值是数字?
// 如果是非数字 则是返回组成的字符串?
},
test: function(){
var x = 90;
this.x = 1999;// test函数已经是o的一个属性或方法,this指向的是实例,不一定是当前作用域
// 方法里面虽然定义了x 但是this.x 指向的是o对象的x 变量,this到底是谁,谁调用就是谁!
}
};
var result = (o < "9"); //字符、字母按照ASC II码值转成9 对象转换成10,
// 即 var result = 8+2 < 9返回 false
// o.test();
alert(o); //
/*无关代码 alert(null==undefined);
alert(null!=false);
alert(Number(undefined)==0);// false
alert(Number(null)==0);// true */
</SCRIPT>
分享到:
相关推荐
在全局作用域当中,this 永远指向 window,因此在全局作用域里作为普通函数被调用的时候,this 也是指向 window。 function fn1() { console.log(this); //window } fn1(); 3. 作为构造函数被调用,由new调用 ...
3.2.4 变量作用域 3.2.5 变量的拼接 3.3 常量 3.4 要注意的bug 3.5 应知应会 练习 第4章 对话框 4.1 与用户交互 4.1.1 alert()方法 4.1.2 prompt()方法 ...
JavaScript对象没有静态作用域 16 关键字this 16 (4) 定义类或对象的方法 16 工厂方式 16 构造函数方式和原型方式 17 混合的构造函数/原型方式(常用方式) 18 动态原型方法(常用方式) 18 总结...
本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。...
2、函数自己无法运行,它总是被对象调用的,函数运行时,函数体内的this指针指向调用该函数的对象,如果调用函数时没有明确指定该对象, this 默认指向 window ( strict 模式除外,本文不涉及 strict 模式);...
当你在代码中使用了 this,这个 this 的值就直接从执行的上下文中获取了,而不会从作用域链中搜寻。 关于 this 的取值,大体上可以分为以下几种情况: 情况一:全局 & 调用普通函数 在全局环境中,this 永远指向 ...
scope:作用域,如果有作用域嵌套的情况就称作”作用域链”。 variable object:变量对象,用于存储标识符的特殊对象。 this value:this 值。 *标识符:包括变量、函数名、属性名和函数的参数。 ES5 标准中的...
let 和 const:提供了块级作用域的变量声明,使用 let 可以声明局部变量,而 const 用于声明不可重新赋值的常量。 函数的新写法: 箭头函数:这是函数的一种简洁表达方式,它允许我们以更简短的形式写函数,并且改变...
一、变量 说到javascript中的delete操作符,还是首先要搞清楚javascript中的变量和属性之间的...这些可以大家可以去了解一下javascript作用域和闭包。 代码如下: //原型中声明的属性无法被删除var global = 1;this.g
封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏。通过封装可以强制实施信息隐藏。 在JavaScript中,并没有显示的声明私有成员的关键字等。...利用“函数作用域”这一个概念来做。 1. 门户大开型 var
function声明的函数和箭头函数的作用域不同,这是一个不小心坑的地方。可参考箭头函数说明: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions 所以对于这个结果,...
leetcode 分类 生活、工作和兴趣 To Do List 前端 ...基本的表单标签 ...JavaScript JavaScript基础知识 声明 ...执行上下文栈和变量...let可以将变量绑定到所在的任意作用域中(通常是{...}内部) this 浅拷贝(shallow copy)
变量和函数将自动在其当前作用域之上声明。 但是,变量在代码块中分配之前不会被分配一个值。 / 前任。 有关示例,请参见 hoisting.js 这在 Javascript 中 由于 Javascript 是一种无类语言,因此使用 this 将指向一...
3.4.1 公用、受保护和私有作用域..............................................75 3.4.2 静态作用域并非静态的..............................................76 3.4.3 关键字 this. 76 3.5 定义类或对象...........
文档对象功能及其作用 538 document中三个主要的对象 539 文档对象的基本元素 541 窗口及输入输出 544 输出流及文档对象 546 简单的输入、输出例子 547 内容总结 551 独立实践 552 第二十八章: Servlet 553 学习...
前端 [2021-01-29] [2021-01-29] [2021-01-29] [2021-01-29] ...[2021-01-29] javascript中的词法作用域 [2021-01-29] 不使用var就不是声明变量 [2021-01-29] jsbin神一般地在线书写,测试,分享代码 [2021-
2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否通过? 8 6、short s1 = 1; s1 = s1 + 1;有什么错? 8...
2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否通过? 8 6、short s1 = 1; s1 = s1 + 1;有什么错? 8...
{2.1}类与对象}{45}{section.2.1} {2.1.1}构造方法}{45}{subsection.2.1.1} {2.1.2}Java变量类型}{47}{subsection.2.1.2} {2.1.3}面向对象的编程}{47}{subsection.2.1.3} {2.2}继承}{48}{section.2.2} {2.2.1}...