javascript中未定义的类型
Type of undefined in javascript?
这不是一个实际问题,我只是需要一个解释。
我有以下代码:
var src = container.find('img').attr('src');
if(src === 'undefined') {
alert('No src');
}
当我启动控制台并记录src时,它说它是未定义的,但警告没有被触发。调试这段代码证明了之前的行为是正确的。当我删除if语句中的"并保留未定义类型时,警报被触发。
另一方面,在我的代码下面,我有这一段:
var pathname = (window.location.pathname).split('/');
if(pathname[5] === 'undefined') {
alert('Something...');
}
并且当控制台说pathname[5]未定义时,警报被正确触发。
因此,我认为在第一种情况下,undefined作为类型返回,在第二种情况下作为字符串返回。这是正确的吗?为什么会有这样的行为?
感谢所有聪明的答案!
既然src
已经被声明了,你需要做的就是检查它的真实性:
if (!src) alert('no src');
如果变量可以有一个假值(空字符串,零,假),那么你应该检查undefined
和null
,如:
if (src === null || src === undefined)
或利用null == undefined
if (src == null)
您需要知道===
运算符,它不仅检查变量的值,还检查变量的数据类型。
所以在第一种情况下,它不是得到真,因为在javascript undefined
不是一个字符串。
所以尝试:
if(src === undefined) {
alert('No src');
}
在第二种情况下,它仍然返回false。这里是JsFiddle Demo
试试这个:
var loc="/~svemirko/dreamhouse/admin/homepage/";
var pathname = (loc).split('/');
if(pathname[7] === undefined) {
alert('Something...');
}
试试这样做:
var src = container.find('img').attr('src');
if(typeof(src) === 'undefined') {
alert('No src');
}
相关文章:
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 看到“;未捕获的类型错误:无法读取属性'weight'未定义的“;尽管按照字面上的指示
- "日期“;AJAX请求返回的类型值未定义
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- 类型错误:url未定义extjs 4正在填充组合框
- React.createElement:类型不应为null或未定义
- 未捕获的类型错误:无法读取属性'中止'的未定义
- Javascript 类型未定义和 void 之间的区别
- 类型错误'未定义'不是对象(正在评估'navigator.connection.type'
- 未捕获的类型错误:无法设置属性'背景'的未定义
- Javascript未捕获类型错误:无法读取属性'0'的未定义
- jQuery结合了2个绑定函数(类型错误:a是未定义的)
- 未捕获的类型错误: 无法读取未定义的属性“图像”
- 余烬类型未定义且加载路线出错,具有一对多关联
- 如何触发此“类型(未定义)!= 未定义”错误?未定义不起作用.WSS
- JavaScript性能(arr[i]的类型==“未定义”||num<arr[i])
- 未捕获类型:未定义不是函数JS错误
- AngularJS工厂返回类型未定义
- ReactJS: '类型未定义'加载组件时
- 可编辑的数字类型未定义