console.log(a);
var a = 3;
function a(){}

输出的结果是:[Function: a]

注意一下几点就能知道原因了!

1)函数声明会置顶
2)变量声明也会置顶
3)函数声明比变量声明更置顶:)
4)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
5)声明过的变量不会重复声明

按以上的规则代码等价为

function a(){}
var a;//实际无效
console.log(a);
a = 3;

js函数与变量同名的更多相关文章

  1. js 函数和变量的提升

    js 函数和变量的提升 1. 函数的作用域: js中 ,函数的作用域为函数,而不是大括号. var hei = 123;if(true){ hei = 456;}console.log(hei);// ...

  2. JS函数和变量

    JS函数和变量  函数: 函数是由事件或者当它被调用时执行的可重复使用的代码块. 是一个独立的代码块,实现特定功能模块. 函数他不进行调用触发的话,不会自己主动执行. 像ATM机一样,不去取钱的话不会 ...

  3. js函数和变量的执行顺序【易错】

    js函数和变量的声明与执行顺序 一.函数执行顺序 1.正常顺序 function f(){ alert(2); } f(); //alert 2 所有浏览器都能测试通过. 2.倒序调用 f(); // ...

  4. js函数和变量的声明与执行顺序

    一.函数执行顺序 1.正常顺序 function f(){ alert(2); } f(); //alert 2 所有浏览器都能测试通过. 2.倒序调用 f(); //alert 2 function ...

  5. JS函数和变量名称冲突

    在JS中如果函数名与变量名冲突,JS是怎么执行的? <script> console.log(sum);//function sum(){} function sum(){} var su ...

  6. [转]js 判断js函数、变量是否存在

    本文转自:http://blog.csdn.net/liang4571231/article/details/4042519 在进行js编程时,总会出现可能一些函数或者变量未定义而被引用,导致报错的情 ...

  7. js函数、变量提升(hoisting)

    其实我只是想复习下变量提升的,然后看到了函数提升,然后再看到了函数声明.函数表达式. 有必要怀着敬仰之心提及园子里的TOM大叔的解密命名函数表达式,不愧是大叔,好好地脑补了下基础知识. 在ECMASc ...

  8. js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法

    //是否存在指定函数 function isExitsFunction(funcName) {    try {        if (typeof(eval(funcName)) == " ...

  9. JS函数、变量作用域

    函数参数 函数的()中指定一个或多个形参(形式参数),多个形参之间用,号隔开,声明形参相当于在函数内部声明了对应的变量,但不赋值.在调用时在()中指定实参  调用时解析器不会检查实参类型.数量,实参可 ...

随机推荐

  1. 1515:打印1到最大的N位数 @jobdu

    题目1515:打印1到最大的N位数 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:625 解决:323 题目描述: 给定一个数字N,打印从1到最大的N位数. 输入: 每个输入文件仅包含一 ...

  2. WinDbug抓取进程dump

    安装WinDbug(包含在 Windows Kits-debugger 中)后,运行如下命令将会在 explorer.exe进程发生崩溃后抓取相应的内存数据到D盘根目录下的一个文件夹中 adplus. ...

  3. ListBox获取行字符串

    ListBox获取行字符串 关键点 获取ListBox第1行的字符串 获取ListBox第2行的字符串 获取ListBox第n行的字符串 CListBox::GetText int GetText( ...

  4. ios的@property属性和@synthesize属性

    当你定义了一系列的变量时,需要写很多的getter和setter方法,而且它们的形式都是差不多的,,所以Xcode提供了@property 和@synthesize属性,@property用在 .h ...

  5. Sqlserver到处数据到Excel

    转:http://www.cnblogs.com/litianfei/archive/2007/08/10/850823.html ) drop procedure [dbo].[p_exporttb ...

  6. redhat 6 配置 yum 源的两种方法

      由于 redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装,再配置其他源. 本文包括配置本地源及第三方源.第三方源包括:网易,epe ...

  7. WWDC2016 Session笔记 – Xcode 8 Auto Layout新特性

    目录 1.Incrementally Adopting Auto Layout 2.Design and Runtime Constraints 3.NSGridView 4.Layout Feedb ...

  8. NIO学习:异步IO实例

    工作模式: 客户端代码: package demos.nio.socketChannel; import java.io.ByteArrayOutputStream; import java.io.I ...

  9. mac 终端中添加tree命令显示文件目录结构

      在Ubuntu下,通过 sudo apt-get install tree 可以使用tree命令,显示文件目录列表,如图所示: 在mac OS X系统下怎么使用呢? 在终端输入: cd $home ...

  10. TextView使用的方式

    第一种改变TextView的方式 //      TextView tv=new TextView(this);  //      tv.setText("Hello,Android&quo ...