undefined是js中的一特殊的变量。
1、在变量提升(预解析)阶段,只声明未定义,默认值就是undefined。
2、在JS的严格模式下(”usestrict”),没有明确的主体,this指的就是undefined。
3、函数定义没有返回值(return或者return后面什么也不带),默认的返回值就是undefined。
4、函数定义形参不传值,默认就是undefined。
5、对象没有这个属性名,属性值默认就是undefined。
6、在数组的find方法中,没有找到的情况下是undefined。
扩展资料:
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
参考资料:百度百科-javascript
js 产生undefined的情况:1.<script type="text/javascript">
var outObj = {
type :"java"
}
function innerM(){
var p
alert(p)//undefined
alert("k:"+k)//error--innerObj未定义
alert(outObj.jack)//undefined
alert(innerObj.jack)//error--innerObj未定义
}
innerM()
</script>
2. <script type="text/javascript">
alert(typeof(false) === 'boolean') //true
alert(typeof(0) === 'number') //true
alert(typeof("") === 'string') //true
alert(typeof(null) === 'object') //true
alert(typeof undefined === 'undefined') //true
</script>
3. <script type="text/javascript">
alert(false == undefined) //false
alert(false == null) //false
alert(false == 0) //true
alert(false == "") //true
alert(null == undefined) //true
</script>
4.<script type="text/javascript">
alert(false.toString()) // "false"
alert("".charAt(0)) // ""
alert((0).toExponential(10)) // 0.0000000e+0
alert(undefined.toString()) // throw exception "undefined has no properties"
alert(null.toString()) // "null has no properties"
</script>
5.<script type="text/javascript">
alert(String(false)) // "false"
alert(String("")) // ""
alert(String(0)) // 0.0000000e+0
alert(String(undefined)) // "undefined"
alert(String(null)) // "null"
alert(decodeURI(undefined))// "undefined"
alert(decodeURI(null))// "null"
</script>