函数声明

深入学习JavaScript(二)

人盡茶涼 提交于 2020-02-21 05:38:38
函数表达式和函数声明 函数声明 function 函数名(参数){函数体} 函数表达式 function 函数名(可选)(参数){函数体} 示例: function foo(){} // 声明,因为它是程序的一部分 var bar = function foo(){}; // 表达式,因为它是赋值表达式的一部分 new function bar(){}; // 表达式,因为它是new表达式 (function(){ function bar(){} // 声明,因为它是函数体的一部分 })(); 另外一种不太常见的函数表达式 function foo(){}//函数声明 (function foo(){});//函数表达式,因为在外面加上了一个分组操作符,分组操作符有一个作用是将括号中的函数声明转化成为函数表达式 //验证分组操作符内是否一定要是函数声明 try{ (var x=5); //var x=5是一个语句,不是函数声明 }catch(err){ alert(err); } 函数表达式与函数声明各自的作用? 函数声明会在函数表达式被解析和求和之前先被解析,如果是函数表达式在函数声明之前那么函数声明也会在其之前解析 示例: alert(foo()); function foo(){ return "Hello World"; } 提示:函数声明最好不要在判断语句中使用

js的变量提升问题

邮差的信 提交于 2020-02-21 01:50:37
执行结果: 为什么第一个不输出全局变量呢? 我们先了解下变量提升,指的是变量声明总是会被解释器“提升”到函数体的顶部,这意味着,我们的var scope="局部”,但解释器会提升该scope变量——将该变量的声明提升到函数体的顶部。 注意:变量提升只是提升变量声明部分,并不会提升变量赋值部分。 上面的代码可以转换为: function test(){ var scope ; document.writeln(scope+"<br/>"); scope = "局部"; document.writeln(scope+"<hr/>"); } 这样的话就在test()函数里面,先声明了scope变量,但是第一次打印时还没有赋值,故为undefined 来源: CSDN 作者: victor_yjx 链接: https://blog.csdn.net/victor_yjx/article/details/104417210

Date() 匿名函数,函数声明,函数表达式的区别 内置对象 本地对象 宿主对象

点点圈 提交于 2020-02-21 01:40:29
  0.1,new Date('2002-1-2') 【创建时间 】   0.2,new Date() 【拿到所有时间 年月日时分秒 】 Thu Aug 15 2019 11:00:01 GMT+0800 (中国标准时间)   0.3 new Date().toDateString() 【.toDateString()限制作用 拿年月日】"Thu Aug 15 2019" 一,匿名函数:function(){}   1.1 创建函数 (把自己创建出来) 【由上到下执行,执行完毕自动释放,不占用内存】   1.2 给自己加括号,自调用(function(){} )() (加括号调自己) 【同上】   1.3 将匿名函数,作为形参传递到函数中去,和回调函数 (将自己放到括号里面作为形参)【】 二,函数声明 :function fun(){}   2.1 会声明提前,全局任意地方创建,任意地方调用。    注意:函数名不可以跟变量名取一样,函数会提前声明,然后变量才提前声明 ,变量名会覆盖函数名,最终 not a function 三,函数表达式:var fun=function (){ return a-b}   3.1 return 返回来的值 fun 会接收 一,内置对象 【不可被new实例化的函数】属于本地对象的一种   代表:Math( random() ceil()

超详细的函数指针

∥☆過路亽.° 提交于 2020-02-20 07:05:35
函数指针基础 使用函数指针一般要实现: 1)获取函数地址 2)声明函数指针 3)使用函数指针调用函数 ( 1 )获取函数地址 : 直接使用函数名(函数名就是地址),比如调用think()函数: show_array ( think ) ; ( 2 )声明函数指针 int sum ( int n ) ; //(1式) int ( * p ) ( int n ) ; //(2式) p = sum ; 2 式中 ( * p ) 必须加括号, ( * p ) 相当于 1 式中的sum,那么p就是指向sum ; 否则,p函数返回的是一个指针。 ( 3 )调用函数 接着( 2 )中的示例: int x = sum ( 2 ) ; int x = ( * p ) ( 2 ) ; //这两句话是一样的! 深入探讨函数指针 int arr [ 3 ] = { 6 , 2 , 1 } ; //三个函数声明(返回类型和参数形式都是一样的): const int * f1 ( const int arr [ ] , int n ) ; const int * f2 ( const int * arr , int n ) ; const int * f3 ( const int arr [ ] , int n ) ; const int * f1 ( const int arr [ ] , int n )

大型程序的工具——命名空间

馋奶兔 提交于 2020-02-20 05:42:38
一、命名空间   命名空间为防止名字冲突提供了更加可控的机制。命名空间分割了全局命名空间,其中每个命名空间是一个作用域 1、命名空间定义   一个命名空间的定义包含两部分:首先是关键字namespace,随后是命名空间的名字。在命名空间名字后面是一系列由花括号括起来的声明和定义。 1 #include <iostream> 2 #include <string> 3 4 namespace QAQ { 5 int x = 100; 6 } 7 int main() 8 { 9 std::cout << QAQ::x << std::endl; 10 return 0; 11 } View Code   命名空间的名字必须在定义它的作用域内保持唯一。 命名空间既可以定义在全局作用域内,也可以定义在其他命名空间中,但是不能定义在函数或类的内部 。 1)每个命名空间都是一个作用域   命名空间的每个名字都必须表示该空间内的唯一实体。因为不同命名空间的作用域不同,所以在不同命名空间内可以有相同名字的成员。   定义在某个命名空间中的名字可以被该命名空间内的其他成员直接访问,也可以被这些成员内嵌作用域中的任何单位访问。位于该命名空间之外的代码则必须指出所用的名字属于哪个命名空间。 2)命名空间可以是不连续的   命名空间可以定义在几个不同的部分。 1 #include <iostream>

160622、详解JavaScript变量提升

北慕城南 提交于 2020-02-20 01:45:47
变量在程序中随处可见。它们是一些始终在相互影响,相互作用的的数据和逻辑。正是这些互动使应用程序活了起来。 在JavaScript中使用变量很重要的一方面就是变量的提升 —— 它决定了一个变量何时可以被你的代码使用。如果你在寻找关于这方面的详细介绍,那你算是来对地方了。让我们一起看看吧。 1. 简介 提升 是一种将变量和函数的声明移到函数作用域(如果不在任何函数内的话就是全局作用域)最顶部的机制。 提升影响了变量的生命周期,一个变量的生命周期包含3个阶段: 声明 - 创建一个新变量,例如 var myValue 初始化 - 用一个值初始化变量 例如 myValue = 150 使用 - 使用变量的值 例如 alert(myValue) 这个过程通常是像这样执行的:首先 声明 一个变量,然后用一个值给它 初始化 ,最后就是 使用 它。让我们看一个例子: // 声明 var strNumber ; // 初始化 strNumber = '16' ; // 使用 parseInt ( strNumber ); // => 16 在程序中一个函数可以先 声明 ,后 使用 。 初始化 被忽略掉了。例如: // 声明 function sum ( a , b ) { return a + b ; } // 使用 sum ( 5 , 6 ); // => 11 当这三个步骤按顺序执行的时候

详解JavaScript变量提升

旧街凉风 提交于 2020-02-20 01:40:32
   变 量在程序中随处可见。它们是一些始终在相互影响,相互作用的的数据和逻辑。正是这些互动使应用程序活了起来。   在JavaScript中使用变量很重要的一方面就是变量的提升 —— 它决定了一个变量何时可以被你的代码使用。如果你在寻找关于这方面的详细介绍,那你算是来对地方了。让我们一起看看吧。 1. 简介   提升是一种将变量和函数的声明移到函数作用域(如果不在任何函数内的话就是全局作用域)最顶部的机制。 提升影响了变量的生命周期,一个变量的生命周期包含3个阶段: 声明 - 创建一个新变量,例如 var myValue 初始化 - 用一个值初始化变量 例如 myValue = 150 使用 - 使用变量的值 例如 alert(myValue) 这个过程通常是像这样执行的:首先 声明 一个变量,然后用一个值给它 初始化 ,最后就是 使用 它。让我们看一个例子: // 声明 var strNumber; // 初始化 strNumber = '16'; // 使用 parseInt(strNumber); // => 16 在程序中一个函数可以先 声明 ,后 使用 。 初始化 被忽略掉了。例如: // 声明 function sum(a, b) { return a + b; } // 使用 sum(5, 6); // => 11   当这三个步骤按顺序执行的时候

js使用

和自甴很熟 提交于 2020-02-19 14:50:19
js使用 HTML 中的脚本必须位于 <script> 与 </script> 标签之间。 脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中。   1.JavaScript 对大小写是敏感的。   2.JavaScript 会忽略多余的空格。您可以向脚本添加空格,来提高其可读性。 Test:点击按钮改变标签内容 <!DOCTYPE html> <html> <body> <h1>My Web Page</h1> <p id="myPar">I am a paragraph.</p> <div id="myDiv">I am a div.</div> <p> <button type="button" onclick="myFunction()">点击这里</button> </p> <script> function myFunction() { document.getElementById("myPar").innerHTML="Hello World"; document.getElementById("myDiv").innerHTML="How are you?"; } </script> <p>当您点击上面的按钮时,两个元素会改变。</p> </body> </html>   3.对代码行进行折行 您可以在文本字符串中使用反斜杠对代码行进行换行

js基础

拟墨画扇 提交于 2020-02-19 14:49:36
js基础 在工作中,时不时的要设计去与web端的网页去进行一些交互,要想软件的功能更加强大,包括QT,Android,IOS的开发,无一列外的都会涉及到与JS的交互,所以想着手学习JavaScript,以后遇到问题,会多一些解决的思路,虽然之前在QT已经用过JS的交互,但具体的基础还是有些模糊。 JavaScript JavaScript 使用 JavaScript 语句输出注释 JavaScript 变量数据类型对象函数运算符 变量 数据类型 JavaScript 函数 JavaScript运算符 JavaScript 条件语句和循环语句 JavaScript Break 和 Continue 语句 JavaScript 错误 - ThrowTry 和 Catch JavaScript 表单验证 结束 JavaScript JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。 这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后

预编译

自闭症网瘾萝莉.ら 提交于 2020-02-18 07:02:21
javascript预编译部分   JavaScript当中不向其他的语言一样,在js中我们会看到一些奇怪的现象就像我们可以在函数声明之前去访问这个函数的名字,并且能够打印出函数体,而且我们还能在变量声明之前去访问这个变量,虽然值是一个undefined但是并没有报错,这些特殊的情况,归结于函数的预编译过程。 console.log(foo); function foo(){}   这样的一段代码,根据javascript解释执行的情况,本应该是报错的,因为找不到函数的啊。但是这里的并没有报错,这里打印出来的是整个函数体。同样这样的情况还有我们可以在变量声明之前访问该变量,这种情况被总结为,函数声明整体提升,变量声明声明提升,提升的场所是整个作用域逻辑的最顶端。 两个不一样的全局变量   1. 暗示全局变量(imply global): 当一个变量未经声明就赋值的时候他就被当作是全局变量, 归window所有。 function foo() { var a = b = 123; } foo(); console.log(b); //123   这里的b就成了暗示全局变量,使得我们在函数的外部能够访问到。   2. 一切声明在全局当中的变量都是window对象的属性 var a = 123; console.log(window.a); // 123   它们的区别是