• $就是jquery对象,$()就是jQuery(),在里面可以传参数,作用就是获取元素

  • js对象与jQuery对象的区别:jQuery对象是一个数组,jQuery对象转为js对象:[0] 取第一个即可,js对象是dom对象,转为jquery对象:$(' ')

  • 函数声明

function 方法名(){
//方法体
} //调用函数myFunc,传入的参数是一个匿名函数,返回一个匿名函数
myFunc(function() {    return function(){}; });
  • 函数表达式
var 变量名 = function [name] ([param1[, param2[, ..., paramN]]]){
//方法体
};
  • 箭头函数
//没有方法名
//代码块有多条语句时,用大括号包裹
//返回值是对象时,用小括号包裹
//箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this
//没有 arguments
//不能通过 new 关键字调用
//没有原型
//没有 super (参数) => {
//方法体,返回值
}
  • 匿名函数
(function (){
//方法体
})() //这里表示立即执行
function() {}()   // 错误写法
(function 方法名(){})();
!function (){}()
~function (){}()
(function (){})
+function(){}();
(function() {})();
(function() {}());
定义:当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的其它变量,如果返回的这个函数在外部被执行,就产生了闭包
特点:
函数嵌套函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制回收
  • 对象增强
const username = 'goudan';
const age = 20;
const sex = '男';
const reqData = {
username: username,
age, // 当key和value的名称一致时,可省略value
sex
}
  • 对象方法的定义
//方法名作为key,函数代码块作为value
const user = {
add: function(){
console.log(this); // 指向当前对象
},
update: () => {
console.log(this); // 箭头函数的写法,指向Windows对象
},
del(){
console.log(this); // ES6中简写方式,指向当前对象
}
}
//使用:对象.方法名
user.add()
  • js封装
//对象方法的使用案例,可将对象方法单独封装到js,使用时引入
const $ = {
dom: (obj) => { // 获取dom节点
if(obj.indexOf('.') == 0) {
return document.getElementsByClassName(obj.substring(1))
}
if(obj.indexOf('#') == 0) { // 根据id获取dom元素
return document.getElementById(obj.substring(1))
}
return document.getElementsByTagName(obj) // 返回指定标签名的对象的列表
},
query: (str) => { // 获取选中的第一个指定元素
return document.querySelector(str)
},
queryAll: (str) => { // 获取选中的所有指定元素
return document.querySelectorAll(str)
},
siblings: function(elem) { // 获取所有兄弟节点
//parentNode返回指定节点的父节点,childNodes返回指定节点的所有子节点
return $.siblingAll(elem.parentNode.childNodes, elem)
},
siblingAll: function(o, elem) { // 获取所有子节点
var arr = []
for(let item of o) {
//nodeType返回指定节点的节点类型,元素节点返回1,属性节点返回2
if(item.nodeType === 1 && item !== elem) {
arr.push(item)
}
}
return arr;
},
} // 对象.方式名
var oP = $.query('div.box p.current') // 获取到ele对象
var o = $.siblings(oP) // 获取所有兄弟节点
  • jquery.ajax
$(function(){
//请求参数
var list = {};
//
$.ajax({
//是否异步,默认true为异步请求
async: false,
//请求方式
type : "POST",
//请求的媒体类型,发送
contentType: "application/json;charset=UTF-8",
//请求地址
url : "http://127.0.0.1/admin/list/",
//发送请求的数据,这里转为字符串格式,才能进行传输
data : JSON.stringify(list),
//返回的数据格式
dataType : json,
//请求成功
success : function(result) {
console.log(result);
},
//请求失败,包含具体的错误信息
error : function(e){
console.log(e.status);
console.log(e.responseText);
}
});
});
  • async和await
// async放在函数前表示这是一个异步函数,该函数的执行不会阻塞后面代码的执行
async getMenuList(){
// await只能在async函数中使用,await表达式会暂停当前 async function的执行,先执行await
const {data: res} = await this.$http.get('menus');
console.log(res)
}

参考

js函数和封装的更多相关文章

  1. JS —— 轮播图中的缓动函数的封装

    轮播图的根本其实就是缓动函数的封装,如果说轮播图是一辆跑动的汽车,那么缓动函数就是它的发动机,今天本文章就带大家由简入繁,封装属于自己的缓动函数~~ 我们从需求的角度开始,首先给出一个简单需求: 1. ...

  2. react request.js 函数封装

    1.request.js  函数封装 import { Toast } from 'antd-mobile'; import axios from 'axios'; import store from ...

  3. js函数表达式和函数声明的区别

    我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...

  4. js 函数

    函数:封装了某一块功能 四要素: 1.返回类型 2.函数名 3.参数列表4.函数体强类型语言 返回类型 函数名 首字母大写 参数列表string(字符串) Show (int a){ 函数体 }弱类型 ...

  5. JSF页面中使用js函数回调后台bean方法并获取返回值的方法

    由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...

  6. JS类的封装及实现代码

    js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. ...

  7. 【转】3篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:官方原生方法分析

    作者: 牛A与牛C之间 时间: 2013-11-17 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第3篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  8. 原生JS面向对象思想封装轮播图组件

    原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能 ...

  9. js函数的各种写法与调用

    以下是我见过的各种js函数的各种写法以及调用,虽然有些写法及其调用我不清楚其专业术语叫啥,但并不影响我写一个总结笔记. 我们刚开始接触js语音,经常看到的这种名叫“使用function关键字来定义函数 ...

随机推荐

  1. 微信小程序云开发-云函数-初始化云函数环境

    一.新建云函数文件夹 新建的云函数文件夹,命名为cloud,该文件夹一定要与pages文件夹同级.此时该文件夹的前面没有云朵的标识.  二.配置project.config.json文件 在proje ...

  2. springboot+mybatis+mysql 利用mybatis自动生成sql语句

    工具和环境 idea,mysql,JDK1.8 效果图如下 结构图如下 java resources sql文件 /* Navicat MySQL Data Transfer Source Serve ...

  3. Unity3D学习笔记3——Unity Shader的初步使用

    目录 1. 概述 2. 详论 2.1. 创建材质 2.2. 着色器 2.2.1. 名称 2.2.2. 属性 2.2.3. SubShader 2.2.3.1. 标签(Tags) 2.2.3.2. 渲染 ...

  4. mongodb(27017、28017)未授权访问

    重启docker systemctl restart docker.service 下载mingodb docker pull mongo:3.6 列出镜像 docker images mongo 创 ...

  5. XSS靶机

    第一关 localhost:8083/xss/level1.php?name=test<script>alert(1)</script> 第二关 源码 文本框输入js代码,查看 ...

  6. ASP.NET Core下FreeSql的仓储事务

    ASP.NET Core下FreeSql的仓储事务 第一步:配置 Startup.cs 注入 引入包 dotnet add package FreeSql dotnet add package Fre ...

  7. 对象转换工具 MapStruct 介绍

    前言 在我们日常开发的分层结构的应用程序中,为了各层之间互相解耦,一般都会定义不同的对象用来在不同层之间传递数据,因此,就有了各种 XXXDTO.XXXVO.XXXBO 等基于数据库对象派生出来的对象 ...

  8. 桌面小部件AppWidgetProvider简单分析

    1.一般桌面小部件涉及到的类 AppWidgetProvider :BroadcastRecevier子类,用于接收更新,删除通知 AppWidgetProvderInfo:AppWidget相关信息 ...

  9. Java架构师-十项全能学习笔记(1)

    Java架构师-十项全能学习笔记(1) @Configuration @EnableStateMachine public class OrderStateMachineConfig extends ...

  10. 在vmware虚拟机下的Window2003服务器下安装IIS服务详细教程——超级详细(解决关于:800a0bb9的解决办法)

    总的来说,就是9步: 1.控制面板添加或者删除程序2.删除想要删的3.打开IIS配置4.开始共享5.导入源码6.配置权限7.网站属性.文档.应用程序配置8.web服务扩展9.访问网站 在安装好虚拟机的 ...