【JavaScript】前端编写js脚本需关注点

JavaScript

1. var let const

var:普通变量

let:局部变量

const:常量

2. null undefined

null:表示空值

undefined:表示未定义

null是一个表示“空”的对象,转为数值时为0;undefined是一个表示"此处无定义"的原始值,转为数值时为NaN。

已声明未初始化或未成功初始化的变量默认值为undefined;主动声明var a = null,表示变量为空。

判断null用==,判断undefined用===(绝对等于)

3. layer.open layer.alert

弹窗与提示

4. GET和POST区别

Get和Post都是向服务器发送的一种请求,只是发送机制不同。

  1. GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。在Ajax请求中,这种区别对用户是不可见的。

  2. 首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度;Post传输的数据量大,可以达到2M。

  3. GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等。在某种情况下,GET方式会带来严重的安全问题。而POST方式相对来说就可以避免这些问题。

  4. 在客户端使用get请求时,服务器端使用@RequestParam来获取参数,而客户端使用post请求时,服务器端使用@RequestBody来获取参数。使用@RequestBody时必须用post请求。

HTTP标准包含这两种方法是为了达到不同的目的。POST用于创建资源,资源的内容会被编入HTTP请示的内容中。当请求无副作用时(如进行搜索),便可使用GET方法;当请求有副作用时(如添加数据行),则用POST方法。

  • 若符合下列任一情况,则用POST方法:

    • 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
    • 若使用GET方法,则表单上收集的数据可能让URL过长。
    • 要传送的数据不是采用7位的ASCII编码。
  • 若符合下列任一情况,则用GET方法:

    • 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
    • 请求结果无持续性的副作用。
    • 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。

5. JSON

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),是一种轻量级的文本数据交换格式

与 XML 相同之处

  • JSON 是纯文本
  • JSON 具有"自我描述性"(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 使用数组
  • 不使用保留字

6. JSON.stringify() JSON.parse()

JSON.stringify()将JavaScript对象转为JSON字符串

而eval()或者JSON.parse()可以将JSON字符串转为一个JavaScript对象

JSON.parse()不仅解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。

7. JS获取时间

var date = new Date();

date.getYear(); //获取当前年份(2位)

date.getFullYear(); //获取完整的年份(4位)

date.getMonth(); //获取当前月份(0-11,0代表1月)

date.getDate(); //获取当前日(1-31)

date.getDay(); //获取当前星期X(0-6,0代表星期天)

date.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)

date.getHours(); //获取当前小时数(0-23)

date.getMinutes(); //获取当前分钟数(0-59)

date.getSeconds(); //获取当前秒数(0-59)

date.getMilliseconds(); //获取当前毫秒数(0-999)

date.toLocaleDateString(); //获取当前日期

var mytime=date.toLocaleTimeString(); //获取当前时间

date.toLocaleString( ); //获取日期与时间

8. Ajax

Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

url:

要求为String类型的参数,发送请求的地址。

type:

要求为String类型的参数,请求方式(post或get)默认为get。

async:

要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。

一般需要请求后为变量赋值才能后续操作时需要设置为false,改为同步,否则会出现变量未赋值的情况。

data:

要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。

dataType:

要求为String类型的参数,预期服务器返回的数据类型。

contentType:

要求为String类型的参数,发送给服务器的数据格式,内容编码类型默认为 “application/x-www-form-urlencoded” 。

success:

要求为Function类型的参数,请求成功后调用的回调函数

error:

要求为Function类型的参数,请求失败时被调用的函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值