js——函数和闭包

javascript

作用: 前端html页面的交互,可以实现 效果(动画,操作效果) 数据展示 数据验证 访问数据 (小游戏开发 api接口访问实现(天气预报 地图api ))等等

一.javascript编程语言如何嵌入到网页
  1. 内嵌写法
    在head body里面以script标签的方式去写入
  2. 外部引入
    在head body 内部进行引入script标签
  3. 标签内部注释:
    ctrl+shift+/ 多行注释
    ctrl+/ 单行注释
    在script标签内部写入可执行代码:
1.es5语法:

数据类型: 6个数据类型
数字: Number
字符串:String
真假型:Boolean
对象型:Object
空值引用:Null 占位置 没人
未定义类型:undefined

对象型细化:
函数类型:Function
日期类型:Date
数组类型:Array
自定义对象:{}

以上的六种数据类型可以分为两种大类型:
1.值类型 number boolean Null undefined (占用的空间大小固定不变)
2.引用类型 Object string (占用的空间位置大小可变 存放在堆种 指针引用)

面试可能会问数据类型的强制转化:(什么是装箱什么是拆箱)
装箱: 值类型转化引用类型
拆箱: 引用类型转化值类型

2.js 如何声明变量(定义变量)

生活小常识: 变量:可变的量 可写可读
常量:不可变的量 只读
声明变量的关键字:var 一个var 全部声明: 但是js严格区分大小写:
例如java : int a=10; float num=1.0; bool n=true;

js里面声明变量的语法规则是:
var 变量名称 是否初始化(是否给值):

变量的命名:
驼峰命名: UserName
帕斯卡命名: userName
带符号 _ user_name
不要重数字

3. 函数

(方法)
js里面 主动为方法 被动为事件 都是调用函数

函数的关键字: function

如何声明函数:
function 函数名称(){}
功能: 代码的封装
//常规函数
function method(函数的参数列表){
/*
* 代码区域
* */
}

1.具名函数     -----这种函数具有声明提前
  function  method(函数的参数列表){
           /*
           * 代码区域
           * */
  }
2.不具名函数(匿名函数)  --没有声明提前
 var fun=function (){

 }

 (function () {

 })

 函数的执行
 具名函数执行:  函数名称();


 匿名函数:
 //自执行函数
 (function () {
         console.log("匿名函数执行");
 })();

  var fun = function () {
         console.log("匿名函数执行");
     }
  fun();


  //函数里面声明提前的问题:

  函数还可以分为  带参函数   函数具有参数列表

   function User(a,b,c){
          console.log(a,b,c);
      }

      User(1,true,3);


      function UserName(){
          //函数的参数列表对象上
          //arguments  是个集合类型
          //length  属性  代表参数列表的长度
          //  key:value   键值
          console.log(arguments[0],arguments[1]);
      }
      UserName('小明','男');

      var fun2=function (a,b,c){
          console.log(a,b,c);
      }
      fun2(1,2,3);

      var fun3=function (){
          console.log(arguments);
      }
      fun3(1,2,3);


      (function (a,b){
          console.log(a,b);
      })(1,2);

      (function (){
          console.log(arguments);
      })(1,2);

  函数可以分为有无返回值

function Ifon() {
//函数代码执行完成之后 返回 return 值(任意类型)
return ‘你好’;
}

console.log(Ifon());

var fun4 = function () {
    return true;
}
var val = fun4();
console.log(val);


var num=(function (){
    return 100;
})();
console.log(num);


函数内部的this指针问题
4.变量的作用域:

1.局部变量 (作用于当前的代码块区域) 定义的局部变量不会出现在window
2.全局变量 (整个作用域) 定义的全局变量默认属域window

5.如何检测数据类型

使用关键字: typeOf
instanceof 判断类型的 用于引用类型

6.数据类型的强制转化 装箱拆箱

装箱: 值类型转化引用类型
拆箱: 引用类型转化值类型

7.闭包

概念: 把局部变量闭包成当前作用域的私有变量 —闭包

优点:把局部变量拿到作用域的外部使用。
缺点:闭包的变量会存到内存里面 , 大量使用闭包会导致内存泄漏。

做开发 尽量避免使用闭包

8.垃圾回收机制: 先了解

概念:指的是方法内部的局部变量在使用完成之后 自动回收,下次调用函数的时候会重置

如果通过闭包 没有自动回收 要进行手动回收

9.js里面的运算符 结构语句

算数运算符 + - * / % = == === ++ –
= == ===
=赋值 == 判断两边值相等 但不限定类型 === 恒等 判断两边值和类型相等

//++自增+1 --自减-1 前置还是后置
//前置是先自增或自减在运算 后置是先运算 在自增自减

逻辑运算符 &&两者都 || 两个满足其一 ! 取反面
数字里面 0为false 非0为true

比较运算符 > < >= <= !=

逻辑结构 (条件)
if(){}
if(){}else{}
if(){}else if(){}else{}

三元运算符: 简写版的逻辑结构: 可以使用到方法内部
条件?true:false

选择结构
switch(属性){
case: break;
case: break;
case: break;
default: break;
}

循环语句:
for 循环
for(; 😉 死循环 1.变量 2.条件 3. 变量自增或自减
{

  }

while(){} 先判断后执行
do{} while() 先执行后判断 至少执行一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值