Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查JavaScript对象参数是否存在_Javascript_Jquery - Fatal编程技术网

检查JavaScript对象参数是否存在

检查JavaScript对象参数是否存在,javascript,jquery,Javascript,Jquery,我创建了一个带有对象参数的函数。如何检查是否设置了对象参数。如果未设置,则显示错误 函数运行(参数){ if(参数偏移){ 警报(“设置了偏移量”); }否则{ 警报(“未设置偏移量”); } } run()首先检查是否设置了params,然后检查是否设置了params.offsettop 函数运行(参数){ if(参数和参数偏移){ 警报(“设置了偏移量”); }否则{ 警报(“未设置偏移量”); } } run()使用以下命令: 函数运行(参数){ if((typeof params!

我创建了一个带有对象参数的函数。如何检查是否设置了对象参数。如果未设置,则显示错误

函数运行(参数){
if(参数偏移){
警报(“设置了偏移量”);
}否则{
警报(“未设置偏移量”);
}
}

run()首先检查是否设置了
params
,然后检查是否设置了
params.offsettop

函数运行(参数){
if(参数和参数偏移){
警报(“设置了偏移量”);
}否则{
警报(“未设置偏移量”);
}
}
run()使用以下命令:

函数运行(参数){
if((typeof params!=“未定义”)&&(typeof params.offsettop!=“未定义”))
{
警报(“设置了偏移量”);
}
否则{
警报(“未设置偏移量”);
}
}

run()
您需要确保
params
不是
null
未定义的
(尽管只需检查它是否真实即可)。然后,要真正检查对象属性是否存在,请在
中使用
(检查对象或其任何原型上是否存在该属性)或
.hasOwnProperty()
(仅检查对象):

例如:

函数运行(参数){
if(参数中的参数和“offsettop”){
console.log(“设置了offsettop:+params.offsettop”);
}否则{
console.log(“未设置offsettop”);
}
}
run();
运行({offsettop:0})满足函数-它检查对象是否具有指定的属性

请参见下面的演示:

函数运行(参数){
if(params&¶ms.hasOwnProperty('offsettop')){
console.log(“设置了offsettop”);
}否则{
console.log(“未设置offsettop”);
}
}
运行({offsettop:23});
run()两者都可以工作,或者:

function run(params) {

  if ( params && params.hasOwnProperty("offsettop" )) {
    alert("offsettop is set");
  } else {
    alert("offsettop is not set");
  }
}
run();

或者像@Justinas写的:
if(params&¶ms.offsettop)
,尽管我想知道为什么它没有标记为“应答”

你可以写在代码下面

函数运行(参数){
if(params&¶ms['offsettop']){
警报(“设置了偏移量”);
}否则{
警报(“未设置偏移量”);
}
}
run();

run({offsettop:25})
我们可以通过下面的方法检查变量是否为object,然后它包含给定的属性

const run = (params) => { 
 if (typeof params === 'object' && params !== null && 
  Object.prototype.hasOwnProperty.call(params, 'offsettop')) {
  console.log('Params is an object and has property named offsettop');
 }
 else {
  console.log('Failed')
 }
}

undefined
没有属性
offsettop
,您需要向函数传递一些内容
function run(params) {

  if ( params && params.hasOwnProperty("offsettop" )) {
    alert("offsettop is set");
  } else {
    alert("offsettop is not set");
  }
}
run();
const run = (params) => { 
 if (typeof params === 'object' && params !== null && 
  Object.prototype.hasOwnProperty.call(params, 'offsettop')) {
  console.log('Params is an object and has property named offsettop');
 }
 else {
  console.log('Failed')
 }
}