1. undefined
① 在变量提升(预解析)阶段,变量只声明未赋值,默认值就是undefined
LY 示例代码
<script>
var num;
console.log(num);
</script>
② 函数定义没有返回值(return或者return后面什么也不带),默认的返回值就是undefined。
LY 示例代码
<script>
function fn(){}
console.log(fn())
//或者
function fn(){return}
console.log(fn())
</script>
③ 函数定义形参不传值,默认就是undefined
LY 示例代码
<script>
function fn(a){console.log(a)}
fn()
</script>
④ 对象没有这个属性名,属性值默认就是undefined
LY 示例代码
<script>
let obj={};
console.log(obj.age)
</script>
2. null
① 手动设置变量的值或者对象某一个属性值为null(此时不赋值,会在后面的代码中进行赋值,相当于初始化。)
LY 示例代码
<script>
let obj=null;
console.log(obj)
</script>
② 在JS的DOM元素获取中使用获取单个DOM元素的方法,如果没有获取到指定的元素对象,结果一般是null
LY 示例代码
<script>
let con=document.getElementById('con');
console.log(con)
let box=document.querySelector('div');
console.log(box)
</script>
③ Object.prototype.__proto__的值也是null
LY 示例代码
<script>
console.log(Object.prototype.__proto__)
</script>