作者小头像 Lv.2
76 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
70
6
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32563 472 0
他的回复:
id:hw02441001JQuery中的AJAX把JQuery的js格式文件放在ajax项目的JavaScript中,然后在layout.pug里面导入js文件。 然后就可以写JQuery语法的代码了get方法$get(url,data,callback,type)url是请求的接口地址data是请求的参数     请求的参数的格式可以是json对象,也可以是字符串。callback是请求成功时的回调函数type是请求返回数据的格式  返回数据的格式可以是JSON、HTML、Script、XML、Text等。除了url,其他三个参数如果没有可以省略post方法$post(ulr,data,callback,type)url是请求的接口地址data是请求的参数     callback是请求成功时的回调函数type是请求返回数据的格式  post请求发出去的时候请求参数是放在请求体中。自定义ajaxfunction ajax(opt) {    var defaultParam = {        type: 'get',        url: '#',        data: {},        async: true,        success: function () {},    };     // 更新defaultParams的值    for (var key in opt) {        defaultParam[key] = opt[key];    }     var xhr = null;         // ajax兼容性处理    if (window.XMLHttpRequest) {        xhr = new XMLHttpRequest();    } else {        xhr = new ActiveXObject('Microsoft.XMLHTTP');    }         var paramStr = '';         for (var k in defaultParam.data) {        paramStr += k + '=' + defaultParam.data[k] + '&';    }    // 拼接查询数据的字符串    paramStr = paramStr.substr(0, paramStr.length - 1);         // 根据type进行不同传参的处理    if (defaultParam.type == 'get') {        xhr.open( defaultParam.type, defaultParam.url + '?' + paramStr, defaultParam.async );        xhr.send();    } else {        xhr.open(defaultParam.type, defaultParam.url, defaultParam.async);        xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');        xhr.send(paramStr);    }         // 根据状态获取相关的结果    xhr.onreadystatechange = function () {        if (xhr.readyState == 4) {            if (xhr.status == 200) {                defaultParam.success(xhr.responseText);            }        }    };}
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32563 472 0
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32563 472 0
他的回复:
id:hw02441001数组的概念:数组是指一组数据的集合,其中的每个数据被称为元素,在数组中可以存放任意类型的元素,数组是一种讲一组数据存储在单个变量名下的方式。  数组中可以放任意类型的数据。  书写方式:   1. 利用 new 关键字 创建空数组: var arr=new Array();   2. 利用数组字面量创建数组 [] :var arr=[];//创建空数组;      添加数据的时候一定要用逗号分离。数组的长度可以用 数组名.length  直接获取, 另外数组的长度是可以改变的,例:数组名.length=5;函数的概念:封装了一段可以被重复执行的代码块,使用函数的目的是为了增强代码的效率,减少代码的重复率。  1. 函数的两种声明方式    《一》 利用关键字声明函数     function fn(){}    《二》 函数表达式     var fun=function(){}  fn为函数名,而fun为变量名,函数表达式声明其实和变量声明差不多,只不过一个存的是函数,一个存的是值。  2. 函数不调用,自己不执行。  3. 函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口。一>函数形参和实参匹配问题  声明函数的时候,函数名括号里面的是形参,默认值为undefined  调用函数的时候,函数名括号里面的是实参    function Sum(num1,num2)    {      console.log(num1+num2);    } 1.如果实参的个数和形参的个数一致,则正常输出结果   Sum(1,2); 2.如果实参的个数多于形参的个数, 会取到形参的个数为止。   Sum(1,2,3); 3.如果实参的个数少于形参的个数,   Sum(1);   形参可以看做是不用声明的变量 num2是一个变量但是没有赋值,结果就是undefined二>函数的返回值  通过return 关键字, 书写格式: 例:return 1+2;  注:返回值只能是一个值,不能多个,但可以用字符串形式把多个结合起来输出(实际上还是一个字符串)。  return 后面的代码是无法执行的,return 可以终止函数。三>arguments的使用当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JS中,arguments实际上是当前函数的一个内置对象。所有函数都内置了一个arguments函数,arguments对象中存储了所以实参。arguments的特点:arguments展示形式是一个伪数组,因此可以进行遍历,伪数组具有以下特点:具有length属性;按索引方式储存数据;不具有数组的push,pop等方法。四>作用域链 只要是代码,就有作用域,函数内部的为局部作用域;如果函数中还有函数,那么在这个局部作用域中又可以诞生一个新的作用域。 内部函数访问外部函数变量,采用的是链式查找的方式来决定取那个值,这种结果我们称为作用域链。 五>预解析JavaScript代码由浏览器中的JavaScript解析器来执行的。JavaScript解析器在运行JavaScript代码的时候分为两步:预解析和代码执行。预解析:JS引擎会把JS里面所以的var还有function提升到当前作用域的最前面。  1. 变量预解析(变量提升)    把所有的变量声明提升到当前作用域最前面  不提升赋值操作。  2.函数预解析(函数提升)    把所有的函数声明提升到当前作用域最前面  不调用函数。对象的概念:对象是系统中用来描述客观事物的一个实体对象的创建:  1.利用对象字面量创建对象   var obj={}; 创建一个空对象   var obj={      name:'张三',      age: 18,      sayHi: function(){         console.log('Hi~~');      }   }       obj为对象名  (1) 里面的属性和方法我们采取键值对的方式(2)多个属性或者方法之间是用逗号隔开的(3)方法冒号后面跟的是一个匿名函数  (4)对象的调用,可以采取对象名.属性名,对象名.方法名; 也可以采取对象名['属性名']  2.利用new关键字创建对象   var obj=new Object(); 创建一个空对象   obj.name='张三';   obj.age=18;   obj.sayHi=function(){     console.log('Hi~~');   }  3.利用构造函数创建对象  前面两种方式一次只能创建一个对象,我们可以利用函数的方法,重复这些代码, 我们把这种函数称为构造函数,这个函数里面封装的不是普通代码,是对象。  总的来说,构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。  function 构造函数名(name,age){    this.name=name;    this.age=age;    this.方法名=function(){}  }  调用:var obj=new 构造函数名('张三',18);  //这时候,obj就是一个对象  (1)构造函数名首字母要大写(2)调用构造函数,必须使用new关键字对象的遍历:for in 遍历对象 for(var k in obj) {   console.log(k);  k 变量 输出  得到的是属性名   console.log(obj[k]); 得到的是obj对象中的属性值  }
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32563 472 0
他的回复:
id:hw02441001javascript 代码是写在   标签中   注意:如果标签有scr属性 同时 标签内部也存在js代码,那么标签内代码不会被执行转义字符: < ==''  >=='>'常见的输出方式:     alert()  在页面中弹出一个窗口    document.write()  在当前页面上输出   这个方法可以解析标签    例如:document.write(“hello”);     console.log()   在控制台中输出常见的输入方式:    prompt() 在页面中弹出一个输入的窗口    注:可以用在prompt窗口中得到的数据对变量赋值       var name=prompt('请输入你的名字');常量:值不可改变的叫常量。数据类型:在计算机中,不同的数据所需占用的存储空间是不同的,为了方便把数据分成所需内存大小不同的数据,充分利用存储空间,所以才定义了不同的数据类型。JS变量是弱引用类型:赋值成什么数据类型就是什么类型。(不建议改变变量的数据类型,容易造成歧义)简单数据类型:    基本数据类型:      数字: number        Infinity 代表无穷大,大于任何值,-Infinity 代表无穷小,小于任何值。         isNAN() 判断是否为数字,如果是数字,返回false,不是数字,返回true。      布尔值:boolean  true为1  false为0     和数字进行运算时,当成数字运算。      字符串: 用单引号或者双引号包裹起来的都叫字符串          JS可以用单引号嵌套双引号,或者双引号嵌套单引号。 例如:'我是"xx"'  或者"我是'xx'"    特殊数据类型:      null 空      undefined 未定义的      NaN(not a number)可以用typeof 来检测变量的数据类型。      复杂数据类型:变量:值可以被修改的的叫做变量    1.声明变量(必须声明后才能使用)      关键字:var (声明变量)    注:不声明,直接赋值也是成立的(不推荐)    2.初始化:声明变量的时候,直接给这个变量赋值叫做初始化    3.如果我们声明变量的时候,没有值赋给这个变量,那么系统默认赋值为 undefined变量就是一个容器,内存中的一块空间,用来存放数据的。自动数据类型转换一.字符串加法运算:var result=“你” + “好”  //结果为  你好,为stringvar result=“1”+1       //结果为   11  为stringvar result=“1”+ true   // 结果为 1true  为stringvar result=“1”+ undefined //结果为  1undefined 为stringvar result=“1”+ null    // 结果为 1null  为string总结:任何类型的数据和字符串类型的数据做相加操作时,其他数据类型会自动转化为字符串类型,此时的 + 不再是数学意义上的相加,而是字符串拼接。二.字符串其他运算:任何数据类型和字符串类型进行加法以外的运算时,字符串要先转化为数字再去进行运算。一> 如果字符串为纯数字,则转化为相应的数字。二> 如果字符串存在数字以外的字符, 则转化为NaN,NaN和任何数据类型运算都是NaN。三> 除法中除数为0, alert(10/0) 结果为 Infinity 无穷大  alert(-10/0) 结果为 -Infinity 无穷小三. 非字符串运算 除字符串以外的数据,在进行运算时,先转化为数字,再进行运算。 boolean: true==1,false==0 null==0  undefined==NaN 注:计算机进行小数运算时,天生就有bug,尽量避免小数运算。 比如我们的银行账户的余额,他们在后台存储的时候都是整数,单位是分。四.关系运算    在关系运算中:          1.两个操作数中,有一个为数值,那么就需要将另外一个转化为数值,进行数值比较。         2.两个操作数都是字符串,则比较两个字符串的ASCLL值。          一>  单个字符比较,直接比较ASCLL的大小          二>  对于字符串比较,遵循逐位比较,如果第一个字符比较出大小,直接出结果。否则,第二个字符进行比较,直到比出结果。    在等或不等运算中      只要有一个操作符为NaN,则==结果为false,!=结果为true,而且NaN和自身不等。    注: null==undefined 结果为true强制数据类型转换Boolean() 其他数据类型转换为布尔值。 数字:非0即真; 字符串:非空即真  特殊数据类型均为false。转化为数字:Number() 其他数据类型转换为数字。 字符串:全为数字的时候可以转化为数字,其他的为NaN。parseInt() 主要功能是对数字取整数。 字符串: parseInt(“100a”) 结果为100; parseInt(“10b0a”) 结果为10;如果字符串开头不为数字,那么结果就是NAN。还有一个功能就是把其他进制转化为十进制,必须传入字符串。 例如:parseInt(“1000”,2)。parseFloat() 取浮点数JS隐式转换: 利用算术运算 - * /        例:'12'-0 结果为数字12  '123'-'120' 结果为数字3。转换为字符串1. toString()   例: var num=1; alert(num.toString());2. String() 强制转换  例: var num=1; alert(String(num));3. 加号字符串拼接   例: var num=1; alert(num+'字符串');逻辑运算符 1.逻辑与短路运算   如果表达式1结果为真,则返回表达式2  例:123&&456 结果为456; 如果表达式1为假, 则返回表达式1 2.逻辑或短路运算   如果表达式1结果为真,则返回表达式1 例:123||456 结果为123   如果表达式1为假,则返回表达式2