js中的只读数据

922 阅读1分钟

分享一些javaScript中的一些只读属性的数据 (持续更新中...)

  • eg1 字符串用数组关联法获取的值是只读属性的,并不能修改里面的值,并且字符串的所有方法都不能改变原来的字符串
    let a = 'string';
    console.log(a[0]); //s
    a[0] = 'q';//下面第二行输出还是原来那个数据,并没有改变
    //只读属性,跟数组不一样
    console.log(a);//string
    console.log(a[0])//s
  • eg2 字符对象中的charAt()是从一个字符串中返回一个指定的字符,如果赋值会报错
    let a = 'string';
    console.log(a.charAt(0)) //s
    a.charAt(0) = 'q';
    //Invalid left-hand side in assignment
    //会报错,charAt()方法是从一个字符串中返回指定的字符
    console.log(a)
  • eg3 HTMLElement.offsetTop和HTMLElement.offsetLeft也是为只读属性,
    offsetTop返回当前元素相对于其offsetParent元素的顶部内边距的距离,注意要是块级元素
  • eg4 除了偏移量,获取页面的元素的宽高等属性,也是只读属性
    offsetWidth、offsetHeight(包括边框)
    clientWidth、clientHeight(不包括边框)
  • eg5 诸如类似时间对象方法里面的获取年份方法.getFullYear()一样以get开头的都是只读属性,一般也会有对应的set开头的方法来设置它,

设置只读属性的目的

只读属性的值一般都是基础数据类型,一般存在栈中,节省了在堆中开辟新空间。(个人理解,)