首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c语言局部变量全局变量、静态变量内部函数、外部函数、声明、定义、extern作用总结

一、先搞一波概念 变量按作用域分: 1.局部变量: (1)在函数的开头定义(如定义形参)。   (2)在函数内部定义(如在函数里面定义的变量)。   ...(3)在函数内部的复合语句定义(如for循环,花括号内)。   前两种方式定义的变量可以在函数内任何地方使用,而第三种方式定义的变量只能在复合语句内使用。...2.全局变量函数之外定义的变量称为全局变量,也称为外部变量,其作用域为从定义变量的位置开始到本源文件结束。...说明:  (1)因为函数只能返回一个返回值,因此可以通过使用全局变量来实现一个函数改变多个值后,还能被其他函数调用。   ...,可以循环调用一个函数实现累乘,把结果存放在一个静态局部变量中(这个变量可以在被调函数中,这可以放在主调函数中,当然还可以把它换成全局变量,效果都一样)。

2.7K82

JavaScript的变量

JavaScript 变量可以分为全局变量和局部变量全局变量变量在整个页面脚本中都是可见的,可以被自由访问。 局部变量变量仅能在声明的函数内部可见,函数外是不允许访问的。...var a = 1; //声明并初始化全局变量 function f(){ //声明函数 document.write(a); //显示undefined var a = 2;...//声明并初始化局部变量 document.write(a); //显示 2 } f(); //调用函数 由于在函数内部声明了一个同名局部变量 a,所以在预编译期,JavaScript 使用该变量覆盖掉全局变量函数内部的影响...而在执行初期,局部变量 a 赋值,所以在函数内第 1 行代码读取局部变量 a 的值也就是 undefined 了。当执行到函数第 2 行代码时,为局部变量赋值 2,所以在第 3 行中就显示为 2。...(jQuery); //显示函数代码:function(){} 因此,在函数体内使用全局变量是一种危险的行为。

14410
您找到你想要的搜索结果了吗?
是的
没有找到

jQuery (二)

使用jQuery处理事件 事件处理 一个栗子,单击p时背景变成灰色 由于es6的箭头函数不支持this的绑定,所以无法使用箭头函数,只能使用匿名函数 html <!...对象来获取将要执行的脚本内容,然后将内容添加到script元素内部。...jQuery.fn是所有jQuery对象的原型对象。如果给该对象添加一个函数,则该函数会成为一个jQuery的方法。...上定义一个方法即可,如果有多个方法,请直接使用前缀 如果有事件需要绑定,使用插件名作为命名空间,然后放在插件名中,即,不能使用全局的 如果插件需要使用data()方法关联数据 数据值要在一个对象中。...文件命名需要使用jquery.plugin.js jQuery的UI库 https://jqueryui.com/ ps 该库已经两年更新了,不过lssues 依旧在回复中,对于库的检查 https:

9.3K30

前端开发中不可忽视的知识点汇总(二)

全局函数无法查看局部函数内部细节,但局部函数可以查看其上层的函数细节,直至全局细节。...闭包是指有权访问另一个函数作用域中变量函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部变量和方法传递到外部。...默认支持的糟糕特性都会被禁用,比如不能用with,也不能在意外的情况下给全局变量赋值; 全局变量显示声明,函数必须声明在顶层,不允许在非函数代码块内声明函数,arguments.callee也不允许使用...浏览器允许你这么做,但是它们解析不同 (7)不要使用全局函数 (8)总是使用 var 来声明变量,如果不这么做将导致产生全局变量,我们要避免污染全局命名空间 (9)Switch 语句必须带有 default...闭包使用的优缺点 优点:1.保护函数内部变量的安全,加强了封装性 2.在内存中维持一个变量 3.设计私有方法和变量 4.可以读取函数内部变量 缺点:1.导致内存泄漏,使用不当会造成额外的内存占用 2.

1.7K40

程序断点

注:进入jquery、vue这样的文件时,用加速跳出,同时注意到最好慢点点击。不然出来之后点快了容易跳过要进入的函数。跳出来之后应继续使用进入函数按钮跳进函数内部看信息。...全局搜索对应函数之后,直接点进去? 2.在合适的地方打断点后,即可刷新页面了。注意是 状态下?...当然也可能上一个函数有错误,导致程序不能执行到断点位置。 4.执行到最底层时:执行栏显示为灰色无法点击?2、断点调试过程的收益1.具体看某个变量的系数就把鼠标放在上面?...,再点击 按钮进入了函数内部。...5、总结1.没打断点时在console输入i,i只是一个局部变量,浏览器会把所有的js全部解析完成,console并不能访问到局部变量,只能访问到全局变量,所以console会报错i未定义。

2.2K20

书写高质量jQuery代码的6条经验

时,它将遍历整个DOM,jQuery方法还具有一个充分利用的参数,既可以将一个上下文参数传入jQuery,以限制它只搜索DOM中特定的一部分。...4.1、避免全局变量 jQuery与javascript一样,一般来说,最好确保你的变量函数作用域内。...first');var $second = $('#second'),var value = $first.val(); 4.3、使用 Var 链(单 Var 模式) 将多条var语句合并为一条语句,我建议将赋值的变量放到后面...然而,出于一致性考虑,你可以简单的全部使用 on()方法 我是单元格 比如我们要在上边的单元格上绑定一个单击事件,...).css('color', 'red').css('background', 'yellow');}); 6.1、合并函数 一般来说,最好尽可能合并函数

1.2K90

webStorm 3.0配置使用主题背景色等

这里边需要注意一下的是,要添加原始压缩的代码,*.min.js版的方法是不会被提示。...* 在这项的子菜单中 Usage Scope 右边 Project 第二栏Library下单击,选择新添加的jQuery,使其对整个项目进行覆盖。...自动换行设置: File | Settings | Editor --> Use soft wraps in editor 以下是jquery1.1在ws中效果,还有底下显示vim启动运行的提示,左侧显示数字标题栏名称...,快速跳转到目标函数  7. ctrl + x: 剪切行 8. alt + left/right:标签切换 9. ctrl + r: 替换 ctrl + shift + r: 全局替换 10. ctrl...gd: 跳转到光标所在函数变量的定义。     ():跳转到当前的行首、行尾。     {}:向上、向下跳转到最近的空行。     [{:跳转到目前区块开头。

1.5K10

Java学习日记

全选功能:这里要用到label标签的for属性,关联表单的输入复选框,当单击全选按钮功能的时候 所有权限的功能都要选上,实现方式就是给该标签元素实现单击事件,完成全选的功能 用的选择器使用JQuery实现的...*不能滥用闭包,会增加内存开销,因为函数中的依赖变量本质是不属于该函数的(可以理解为是全局依赖变量的 替代),即使函数执行完了,垃圾回收器也不会回收该依赖的变量。 12....过度使用闭包会导致性能下降,函数里面放匿名函数,则会产生闭包。闭包的实质就是延长局部依赖的变量的生命 周期,使之达到和全局依赖的变量效果是一样的。...Js语言的特点就是函数里面可以嵌套函数,从而有了闭包这一替换 全局变量的特性,就是子函数访问父函数的局部变量,延长了局部变量的生命周期。闭包就是一个代替全局变量的局 不依赖变量。...依赖分为全局依赖和局部依赖,全局依赖就是指类的私有(private)变量或者是保护(protected)的变量,局部依赖一 般指定而是方法的参数或者是方法中的局部变量。 1.

58340

实时音视频开发学习3 - 实现web端跑通知识储备

单击【立即开始】,输入应用名称,例如TestTRTC1,单击【创建应用】。...lib-generate-test-usersing为HMAC-SHA256加密算法包 Js-->debug:GenerateTestUserSig文件用于生成签名 Js-->develop:主要存放业务逻辑代码,其中common为开发过程中的公共函数全局变量...jQuery方法 on:监听事件,如click、input等 attr:设置属性 val:获取input内容 html:获取对应节点内容 hide:隐藏节点 show:显示节点 clone:克隆节点 回调函数理解...回调函数是一个作为变量传递给另外一个函数函数,它在主体函数执行完之后才执行。...节流throttle: 节流可以确保函数在一定的时间内至多执行一次,核心思路为通过内部使用闭包来缓存上次触发函数的时间戳,然后检验本次函数执行时的时间戳和上次缓存的时间戳之差是否小于传入的时间值参数。

1.5K20

JQuery高级

jQuery中定义变量的时候,一般命名用$开头。同事一看就知道是使用了jQuery,然后使用jQuery的语法。 其实$是jQuery中的一个函数。...(后面附一份常用的,共大家参考) 函数里面没有this,事件里面才有this 默认勾选中的checked的值是True,并不是checked的字符串。 开关其实就是全局变量 2....比如子级有单击事件,那么父级如果有单击事件也会被触发,父级的父级如果有单击事件也会被触发。 任何一个操作,计算机或者浏览器都会去处理。不管你有没有设置对应的事件。...新增节点------- 步骤: 1、声明变量保存节点数据(名字一般为$开头,然后找的标签是什么就叫做什么) 2、使用追加函数将节点变量追加到指定位置 子级加: append(添加的内容) 向末尾加 appendTo...调用属性和函数: 对象名.属性名 对象名.方法调用 对象内部写对象名可以写this JavaScript中没有$,只有jQuery中才有$ <!

1.5K50

看不完的那种!前端170面试题+答案学习整理(良心制作)

39.jquery或zepto源码有哪些地方觉得不错 jquery源码封装在一个匿名函数的自执行环境中,有助于防止变量全局污染。...一些数组或对象的方法经常能使用到,jQuery将其保存为局部变量以提高访问速度。jQuery实现的链式调用可以节约代码,所返回的都是同一个对象,可以提高开发效率。...闭包:在局部作用域引用上层作用域(非全局)的变量 优点:防止变量污染作用域 缺点:不释放则会导致内存泄漏 98.写一个数组去重的方法 一维 new set(...arr) 二维 arr.reduce((...114.单击超链接后自动跳转,单击“提交”按钮后表单会提交等,有时候,为了阻止默认行为,怎么办 使用event.preventDefault()或在事件处理函数中返回false,即是return false...创建一个新的对象,这个对象的类型是object,将this变量指向该对象;将对象的原型指向该构造函数的原型;执行构造函数,通过this对象,为实例化对象添加自身属性方法;将this引用的新创建的对象返回

11.4K50

前端模块化详解(完整版)

模式 : 将不同的功能封装成不同的全局函数 编码: 将不同的功能封装成不同的全局函数 问题: 污染全局命名空间, 容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系 function m1()...{ //... } function m2(){ //... } namespace模式 : 简单对象封装 作用: 减少了全局变量,解决命名冲突 问题: 数据不安全(外部可以直接修改模块内部的数据...counter和改写这个变量内部方法incCounter。...除非写成一个函数,才能得到内部变动后的值。...小结:通过两者的比较,可以得出AMD模块定义的方法非常清晰,不会污染全局环境,能够清楚地显示依赖关系。AMD模式可以用于浏览器环境,并且允许非同步加载模块,也可以根据需要动态加载模块。

2.1K30

JavaScript 开发者需要了解的15个 DevTools 技巧

重新加载页面,面板将用条形图显示使用代码的百分比: ? 单击任何 JavaScript 文件,使用的代码会用红条突出显示。 5....找到DOM更改代码 当事件被触发时,很难确定哪个函数负责更新特定的 HTML DOM 元素。...调试一些三方库(React, Vue.js, jQuery等)或第三方脚本中的问题通常都没什么用,你也不能改这些库。...DevTools 允许脚本被黑盒化,因此即使你选择进入调试器的某个函数,它们也不会在调试器中打开。...使用条件断点 单击 Sources 面板中打开的文件的行号会添加一个断点。它会在执行到这一行的时候暂停脚本,这样你可以单步执行代码来检查变量,调用堆栈等。

4.7K20

前端模块化详解(完整版)

模式 : 将不同的功能封装成不同的全局函数 编码: 将不同的功能封装成不同的全局函数 问题: 污染全局命名空间, 容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系 function m1()...{ //... } function m2(){ //... } namespace模式 : 简单对象封装 作用: 减少了全局变量,解决命名冲突 问题: 数据不安全(外部可以直接修改模块内部的数据...counter和改写这个变量内部方法incCounter。...除非写成一个函数,才能得到内部变动后的值。...小结:通过两者的比较,可以得出AMD模块定义的方法非常清晰,不会污染全局环境,能够清楚地显示依赖关系。AMD模式可以用于浏览器环境,并且允许非同步加载模块,也可以根据需要动态加载模块。

1.2K20

JavaScript调试和优化,深入研究谷歌Chrome浏览器开发工具(一)

第二次运行相同的代码或函数将抛出捕获的SyntaxError,表示标识符已经声明。您可以使用OR(||)操作符来检查变量是否已经定义,也可以使用var来声明变量,因为它不会报错之前声明的变量。...另一种方法是使用Store作为全局变量(右键单击菜单选项),将登录到控制台或从函数返回的任何对象转换为全局变量。新创建的全局变量将被称为temp1。...如果将更多的变量存储为全局变量,它们将被称为temp2、temp3等等。 ?...如果您需要跟踪一个函数被调用的次数或内部循环的次数,这将非常有用。 让我们看看另一个例子: ?...我们创建了两个组:名为updateStock()的外部组,然后是名为Details的内部折叠组。您可以单击详细信息获取更多的日志信息。

82450
领券