当前位置: 首页 > news >正文

山东做网站建设的好公司哪家好工程建筑公司

山东做网站建设的好公司哪家好,工程建筑公司,虫虫管理wordpress软件,网站建设有关图片一、函数基本使用 1. 什么是函数 函数就是语句的封装#xff0c;可以让这些代码方便地被复用。函数具有一次定义#xff0c;多次调用的优点。使用函数#xff0c;可以简化代码#xff0c;让代码更具有可读性。 2. 函数的定义和调用 和变量类似#xff0c;函…一、函数基本使用 1. 什么是函数 函数就是语句的封装可以让这些代码方便地被复用。函数具有一次定义多次调用的优点。使用函数可以简化代码让代码更具有可读性。 2. 函数的定义和调用 和变量类似函数必须先定义然后才能使用 使用function关键字定义函数function是功能的意思。 function fun() {// 函数体语句}function表示定义函数。fun函数名函数名必须符合JS标识符命名规则。()圆括号中是形参列表即使没有形参也必须书写圆括号。{}大括号中就是函数体语句。 var fun function () {// 函数体语句}function ()匿名函数 函数的调用 执行函数体中的所有语句就称为调用函数调用函数非常简单只需在函数名字后书写圆括号对即可 fun() // 调用函数圆括号中是实参列表如果没有实参也要书写圆括号。函数声明的提升 和变量声明提升类似函数声明也可以被提升 fun();function fun() {alert(函数被执行);} function fun()在预解析阶段会被提升。 函数优先提升 3. 函数的参数和返回值 参数是函数内的一些待定值在调用函数时必须传入这些参数的具体值。函数的参数可多可少函数可以没有参数也可以有多个参数多个参数之间需要用逗号隔开。函数的参数 function add(a, b) { // 圆括号中定义形式参数var sum a b;console.log(两个数字的和是 sum); }add(3, 5); // 调用函数传入实际参数形参和实参个数不同的情况 arguments 函数内arguments表示它接收到的实参列表它是一个类数组对象类数组对象所有属性均为从0开始的自然数序列并且有length属性和数组类似可以用方括号书写下标访问对象的某个属性值 但是不能调用数组的方法。 函数的返回值 函数体内可以使用return关键字表示函数的返回值 function sum(a, b) {return a b; // 函数的返回值}var result sum(3, 5); // 函数的返回值可以被变量接受调用一个有返回值的函数可以被当做一个普通值从而可以出现在任何可以书写值的地方。 function sum(a, b) {return a b;}var result sum(3, 4) * sum(2, 6);function sum(a, b) {return a b;}var result sum(3, sum(4, 5));遇见return即退出函数 调用函数时一旦遇见return语句则会立即退出函数将执行权交给调用者。 二、函数算法题 1. 寻找喇叭花数 喇叭花树是这样的三位数其每一位数字的阶乘之和恰好等于它本身。即abc a! b! c!其中abc表示一个三位数。试寻找所有喇叭花树。 思路将计算某个数字的阶乘封装成函数这样可以让问题简化。 // 计算一个数字的阶乘function factorial(n) {// 累乘器var result 1;for (var i 1; i n; i) {result * i;}return result;}// 穷举法从100到999寻找喇叭花数for (var i 100; i 999; i) {// 把数字i变为字符串var i_str i.toString();// abc分别表示百位、十位、个位var a Number(i_str[0]);var b Number(i_str[1]);var c Number(i_str[2]);// 根据喇叭花数的条件来判断if(factorial(a) factorial(b) factorial(c) i){console.log(i);}} sort内置排序函数 数组排序可以使用sort()方法这个方法的参数又是一个函数。 var arr [33, 22, 55, 11];arr.sort(function (a, b) {});这个函数中的a、b分别表述数组中靠前和靠后的项如果需要它们交换位置则返回任意正数否则就返回负数。 var arr [33, 22, 55, 11];arr.sort(function (a, b) {if (a b) {return 1;} else {return -1;}}) // 从小到大arr.sort(function (a, b) {return a - b; })// 从大到小arr.sort(function (a, b) {return b - a;})三、递归 1. 什么是递归 函数的内部语句可以调用这个函数自身从而发起对函数的一次迭代。在新的迭代中又会执行调用函数自身的语句从而又产生一 次迭代。当函数执行到某一次时不再进行新的迭代函数被一层一层返回函数被递归。递归是一种较为高级的变成技巧它把一个大型复杂的问题层层转化为一个原问题相似较小的问题来解决。递归的要素 边界条件确定递归到何时终止也称为递归的出口。递归模式大问题是如何分解为小问题的也称为递归体。 2. 递归常见算法 斐波那契数列 斐波那契数列是这样的数列1、1、2、3、5、8、13、21。数列下标为0和1的项的值都是1从下标为2的项开始每项等于前面两项的和。 code 3. 实现深克隆 code 四、全局变量和局部变量 变量作用域JavaScript是函数作用域编程语言变量只在其定义时所在的function内部有意义。 function fun() {var a 10;}fun();console.log(a); // 报错变量a是在fun函数中被定义的所以变量a只在fun函数内部有定义fun函数就是a的作用域变量a被称为局部变量。 全局变量 如果不将变量定义在任何函数的内部此时这个变量就是全局变量它在任何函数内都可以被访问和更改。 var a 10;function fun() {a;console.log(a); // 输出11}fun();console.log(a); // 输出11变量a没有定义在任何函数内部它是全局变量。 遮蔽效应 如果函数中也定义了和全局同名的变量则函数内的变量会将全局的变量遮蔽 var a 10;function fun() {var a 5;a;console.log(a); // 输出6}fun();console.log(a); // 输出 10局部变量a将全局变量a遮蔽了 注意考虑变量声明提升的情况 var a 10;function fun() {a; // 局部变量a被自增1a此时是undefined自增1结果是NaNvar a 5; // 局部变量a会被提升到a之前 重新将a赋值为5console.log(a); // 输出5}fun();console.log(a); // 输出10形参也是局部变量 var a 10;function fun(a) {a;console.log(a); // 输出8}fun(7);console.log(a); // 输出10形参a也是函数内部的局部变量 五、作用域链 函数的嵌套一个函数内部也可以定义一个函数。和局部变量类似定义在一个函数内部的函数是局部函数。 function fun() {function inner() {console.log(你好);}inner(); // 调用内部函数}fun(); // 调用外部函数作用域链 在函数嵌套中变量会从内到外逐层寻找它的定义。 var a 10;var b 20;function fun() {var c 30;function inner() {var a 40;var d 50;console.log(a, b, c, d); // 使用变量时JS会从当前层开始逐层向上寻找定义。}inner();}fun();不加var将定义全局变量 在初次给变量赋值时如果没有加var则将定义全局变量。 function fun() {a 3;}fun();console.log(a); // 3var a 1;var b 2;function fun() {c 3;var b 4;b;console.log(b); // 5c;}fun();console.log(b); // 2console.log(c); // 4六、闭包 什么是闭包 // 创建一个函数function fun() {// 定义局部变量var name 张三;function innerFun() {alert(name);} return innerFun; // 返回了内部函数}var innerFun fun(); // 内部函数被移动到了外部执行innerFun();JavaScript中函数会产生闭包(closure)。闭包是函数本身和该函数声明时所处的环境状态的组合。 函数能够记忆住其定义时所处的环境即使函数不在其定义的环境中被调用也能访问定义时所处环境的变量。 观察闭包现象 在JavaScript中每次创建函数时都会创建闭包。但是闭包特性往往需要将函数换一个地方执行才能被观察出来。 闭包的作用 闭包很有用因为它允许我们将数据与操作该数据的函数关联起来这与面向对象编程有少许相似之处。闭包的功能记忆性、模拟私有变量。 闭包的用途[记忆性] 当闭包产生时函数所处环境的状态会始终保持在内存中不会在外层函数调用后被自动清除。这就是闭包的记忆性。举例创建体温检测函数checkTemp(n)可以检查体温n是否正常函数会返回布尔值。 但是不同的小区有不同的体温检测标准比如A小区体温合格线是37.1℃而B小区体温合格线是37.3℃ function createCheckTemp(standardTemp) {function checkTemp(n) {if (n standardTemp) {alert(你的体温正常);} else {alert(你的体温偏高);}}return checkTemp;}var checkTemp_A createCheckTemp(37.1);var checkTemp_B createCheckTemp(37.3);checkTemp_A(37.2);checkTemp_B(37.0);checkTemp_A(37.5); 闭包的用途[模拟私有变量] 请定义一个变量a要求是能保证这个a只能被进行指定操作如加1、乘2而不能进行其他操作。 // 封装一个函数这个函数的功能就是私有化变量function fun() {// 定义一个局部变量avar a 0;return {getA: function() {return a;},add: function () {a;},pow: function () {a *2;} } }var obj fun();// 如果想在fun函数外面使用变量a唯一的方法就是调用getA()方法。console.log(obj.getA()); 闭包的注意点 不能滥用闭包否则会造成网页的性能问题严重时可能导致内存泄漏。所谓内存泄漏是指程序中已动态分配的内存由于某种原因未释放或 无法释放。 闭包的一道面试题 function addCount() {var count 0;return function () {count count 1;console.log(count);};}var fun1 addCount();var fun2 addCount();fun1(); // 1fun2(); // 1fun2(); // 2fun1(); // 2 七、什么是IIFE IIFEImmediately Invoked Function Expression立即调用函数表达式是一种特殊的JavaScript函数写法 一旦被定义就立即被调用。 (function () {statements})();包裹function的括号将函数变成表达式()运行函数 形成IIFE的方法 函数不能直接加圆括号被调用 function () {alert(1) }()函数必须转为函数表达式才能被调用。 (function (){alert(1)})();function () {alert(1)}(); -function () {alert(1)}();IIFE的作用[为变量赋值] 为变量赋值当给变量赋值需要一些较为复杂的计算时如if语句使用IIFE显的语法更紧凑。!DOCTYPE html html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title /headbodyscriptvar age 42;var sex 女;var title (function () {if (age 18) {return 小朋友;} else {if (sex 男) {return 先生;} else {return 女士;}}})();alert(title);/script /body/htmlIIFE的作用[将全局变量变为局部变量] IIFE可以在一些场合如for循环中将全局变量为局部变量语法显得紧凑。!DOCTYPE html html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title /headbodyscriptvar arr [];for (var i 0; i 5; i) {(function(i){arr.push(function () {alert(i);});})(i);}arr[0]();arr[1]();arr[2]();arr[3]();arr[4]();/script /body/html八、内容难点 什么是函数?函数为开发带来了哪些便利?函数的参数和返回值函数的相关算法题递归、递归算法题作用域和闭包IIFE
http://www.zqtcl.cn/news/723456/

相关文章:

  • 自学编程网站棋牌游戏在哪做网站
  • html做分页的网站以图搜图百度识图
  • 上虞区建设局网站网站建设好公司好
  • 一半都有哪些做影视外包的网站收录网站查询
  • 网站策划书撰写流程网站推广基本方法是
  • 杭州网站建设费用多少写一篇软文推广自己的学校
  • 意大利设计网站易优cms破解授权
  • 学校网站开发工程师wordpress手机博客
  • 注册网站验证码网站开发招聘需要
  • 一个销售网站的设计方案重庆广告制作加工厂
  • 宽带固定ip的怎么做网站服务器网站设计说明书整合
  • 织梦装修公司网站模板wordpress主题代码编辑教程
  • 外边做一个网站要多少钱关键词的选取原则
  • 做网站需要备案吗wordpress会员邮件通知
  • 如何在百度创建网站欧宇公司网络建设方案
  • 网站网页设计基本理论视频模板套用免费
  • 外贸人常用的网站伪静态网站
  • 优质的聊城做网站网站建设论文 网站建设论文
  • 网站开发毕设的需求分析设计网站推荐
  • 武夷山景区网站建设优点网站建设服务合同要交印花税吗
  • 电子商务网站建设行情seo推广软件品牌
  • 荆州市住房和城乡建设厅官方网站网站开发加维护需要多少钱
  • 手机网站 cms宁波网站建设团队排名
  • 深圳网站建设怎么样微商城建设
  • 网站建设前台后台教程大安移动网站建设
  • 建设网站的程序国庆节网页设计素材
  • 彩票网站做代理人事外包公司
  • 免费的网站开发工具网站app开发
  • 厦门的服装商城网站建设语种网站建设
  • 云服务器怎么做网站东莞黄江网站建设