<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 词法分析顺序:先分析形参(将实参的值覆给实参)
再分析函数内部定义的变量
最后分析函数(函数名字与形参名相同会自动提升) -->
<script type="text/javascript">
//省略var 声明变量
//这个变量会被强制变成全局变量
function fun()
{
//var a=123;
a=123;//强制变成全局变量
alert(a);
}
fun();
alert(a);//函数中加入var 会失败
//定义函数变量提升
function ickt(num) { //形参
document.write(11+num+"<br>");//打印num函数 函数会覆盖形参
function num() {
document.write(22+num+"<br>");
}
document.write(33+num+"<br>");
}
ickt(10);
//定义变量
function ickt1(num) {
document.write("11"+num+"<br>");//打印num函数
var num=20; //变量不会覆盖形参会顺序执行
document.write("33"+num+"<br>");//打印num=20
function num() {
document.write("22"+num+"<br>");
}
var num=function() {
xss;
}
document.write("44"+num+"<br>");//打印function内容
}
ickt1(10);
</script>
</body>
</html>
<函数-声明提升>
最新推荐文章于 2023-04-24 09:50:41 发布
本文探讨了JavaScript中的变量提升和函数作用域。通过示例展示了如何在函数内部定义变量和函数,以及未使用var声明变量时如何变为全局变量。同时解释了形参和实参的关系,以及函数定义时变量提升的现象。
摘要由CSDN通过智能技术生成