BOM操作

发布时间 2023-03-25 23:57:25作者: 转角90

location

  • 属性
    • href
    • protocol:协议
    • host: 域名+端口号
    • hostname: 域名
    • port:端口号
    • pathname
    • search
    • hash: 获取#后面的值
  • 方法
    • assign:方法会触发窗口加载并显示指定的 URL 的内容。

      // 跳转到 Location.reload() 这篇文章
      document.location.assign('https://developer.mozilla.org/zh-CN/docs/Web/API/Location/reload');
      
      
    • replace: 当前页面不会保存到会话历史中

    • reload: 用来刷新当前页面,就像刷新按钮一样。

    • toString():它是Location.href的只读版本。

  • URLSearchParams
// new URLSearchParams
var userSearch = new URLSearchParams('?name=why&age=18&height=188')

/*
userSearch.get('name') why
userSearch.set('width',222)
userSearch.append('newV',111)
userSearch.has('name') 
userSearch.toString()
*/
  • 编解码
    • encodeURIComponent(中文):编码
    • decodeURIComponent(): 解码

history

  • 属性
    • length:会话中的记录条数
    • state: 当前保留的状态值
  • 方法:
    • back():返回上一页
    • forward(): 前进下一页
    • go(): 加载历史中的某一页
    • pushState():打开一个指定的地址
    • replaceState():打开一个新的地址,并且使用replace

navigator

属性方法

screen

属性

JSON

JSON(JavaScript Object Notation),一种数据格式。javascript的子集。 Douglas Crockford

其他数据交互格式:XML/Protobuf(很多语言中使用越来越多)

JSON的顶层支持三种类型的值:

  • 简单值:Number/String(必须是双引号)/Boolean/null
  • 对象值:key/value, key必须是双引号
  • 数组值:

JSON序列化:

  • JSON.stringify(obj)

    // replacer、space(更好读)
    JSON.stringify(obj,function(key,value){
        if (key === "name") {
            return "newValue"
        }
        return value
    },4)
    
  • JSON.parse(JSON.stringify(obj))

    var str = JSON.stringify(obj)
    JSON.parse(str,function(key,value){
        if (key === 'age') {
            return value+2
        }
        return value
    })
    
  • 如果一个对象中有toJOSN方法,在进行序列化时会调用此方法