博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript Uncaught TypeError: s is not a function。调用函数未定义问题。看完这篇你就懂了
阅读量:4027 次
发布时间:2019-05-24

本文共 407 字,大约阅读时间需要 1 分钟。

我们来定义一个函数表达式

var s = function(){

  console.log("我被执行了");
}

接下来调用

s();

是不是没问题。那我们换一种姿势再试一次;

什么情况?为啥报错了。是不是有点疑惑。调用的函数。放到函数表达式前,就报错了。找不到此函数。

这是因为函数存在提升问题。函数表达式不存在提升。也就是说。如果定义一个函数而非函数表达式操作以上步骤是没问题的

我们来试下。

 

所以如果定义函数表达式。我们一定要放在调用方法之前。因为函数表达式不存在提升

顺便解释下什么是提升:

引擎会在解释JavaScript代码之前首先进行编译,编译过程中的一部分工作就是找到所有的声明,并用合适的作用域将他们关联起来,这也正是词法作用域的核心内容。

还有就是定义函数最好不要放在$(function(){})里。如果在外部调用函数。肯定会报未定义。因为在此定义函数。是个局部函数。所以在外部肯定调用不到的

转载地址:http://qlvbi.baihongyu.com/

你可能感兴趣的文章
No.148 - LeetCode771
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>
FE:http状态码
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>
mac:移动python包路径
查看>>
mysql:sql create database新建utf8mb4 数据库
查看>>
mysql:sql alter database修改数据库字符集
查看>>
mysql:sql alter table 修改列属性的字符集
查看>>
mysql:sql drop table (删除表)
查看>>
mysql:sql truncate (清除表数据)
查看>>
scrapy:xpath string(.)非常注意问题
查看>>
yuv to rgb 转换失败呀。天呀。谁来帮帮我呀。
查看>>
yuv420 format
查看>>
单纯的把Y通道提取出来能正确显示出灰度图来为什么我的Qt就显示不出来呢转换有问题呀?
查看>>
YUV420只绘制Y通道
查看>>
yuv420 还原为RGB图像
查看>>
LED恒流驱动芯片
查看>>
驱动TFT要SDRAM做为显示缓存
查看>>