function globals() {
myObject = {
name : 'Jory'
};
return myObject;
}
/* 在JavaScript中,如果不使用var声明变量,则该变量被视为全局变量。*/
/* 直接加var */
function globals() {
var myObject = {
name : 'Jory'
};
return myObject;
}
/* 把对象归属改为原型 */
function globals() {
globals.prototype.myObject = {
name : 'Jory'
};
return globals;
}
/* 把对象改为匿名的 */
function globals() {
return { name : 'Jory' };
请修复给定的 js 代码中,函数定义存在的问题
function functions(flag) {
if (flag) {
function getValue() { return 'a'; }
} else {
function getValue() { return 'b'; }
}
return getValue();
}
解法:
/* else中的语句相当于将if中的function重写,因此无论flag为何值,返回的方法始终为重写后的方法。将方法赋值给一个变量,方法就不会被重写 */
/* 将方法赋值给一个变量 */
function functions(flag) {
var getValue = null;
if (flag) {
getValue = function () { return 'a'; }
} else {
getValue = function () { return 'b'; }
}
return getValue();
}
/* 修改为闭包形式 */
function functions(flag) {
if (flag) {
return (function() { return 'a'; })();
} else {
return (function() { return 'b'; })();
}
}
修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例
示例1
'12'
12
'12px'
12
'0x12'
0
/* parseInt(string, radix);
当参数radix的值为0,或没有设置该参数时,parseInt()会根据 string 来判断数字的基数。
如果string以"0x"开头,parseInt()会把string的其余部分解析为十六进制的整数。
如果string以0开头,那么ECMAScript3允许parseInt()的一个实现把其后的字符解析为八进制
或十六进制的数字。如果string以1~9的数字开头,parseInt()将把它解析为十进制的整数 */
/* 根据示例的意思,我们可以看出它要求我们将所有输入转换成十进制输出 */
function parse2Int(num) {
return parseInt(num, 10);
}
判断 val1 和 val2 是否完全等同
function identity(val1, val2) {
return val1 === val2;
}