美文网首页Web 前端开发
记录js中一些常用类型值的tips

记录js中一些常用类型值的tips

作者: Tiny_z | 来源:发表于2016-09-20 23:24 被阅读13次

记录js中一些常用类型值的tips


  var a = [];
  a['13'] = 11;
  a.length; //14

如果字符串键值能被强制类型转换为十进制数字的话,它就会被当做数字索引来处理


js中字符串的值是不可变的,而数组是可变的(字符串不可变是指字符串的成员函数不会改变其原始值,而是会返回一个新的字符串。而数组的成员函数都是在其原始值上进行操作)

  var a = '123';
  var b = [1,2,3];

  a[1] = 's';
  b[1] = 's';

  a;//123
  b;//[1,'s',2]

字符串反转(因为字符串是不可变的,可以先把字符串转换为数组,然后调用数组的反转函数,最后再拼合起来)

  var str = 'abc';
  var res = str.split('').reverse().join('');
  res; // 'cba'

NaN检测(NaN是JavaScript中唯一一个不等于自身的值)

  if(Number.isNaN){//es6可以使用工具函数Number.isNaN()
    Number.isNaN = function(n){
      return n !== n;
    }
  }

值和引用

  var a = 2;
  var b = a; //b是a的值的一个副本
  b++;
  a; // 2
  b; // 3

var c = [1,2,3];
var d = c; //d是[1,2,3]的一个引用
d.push(4);
c; // [1,2,3,4]
d; // [1,2,3,4]

简单值(基本类型值)总是通过值复制的方式来赋值/传递,包括null、undefined、字符串、数字、布尔和ES6中的symbol.
复合值--对象(包括数组和封装对象),和函数,则总是通过引用复制的方式来赋值\传递

var a = [1,2,3];
var b = a;
a; // [1,2,3]
b; // [1,2,3]

b = [4,5,6];

a; // [1,2,3]
b; // [4,5,6]

由于引用指向的是值的本身而非变量,所以一个引用无法修改另一个引用的指向(下面的例子能更好的说明)

 function bar(x){
  x.push(4);
  x; // [1,2,3,4]

  //然后
  x = [4,5,6];
  x.push(7);
  x; // [4,5,6,7]

}
var a = [1,2,3];
bar(a);
a; // 是[1,2,3,4],而不是[4,5,6,7]

我们向函数传递a的时候,实际上是将引用a的一个复本赋值给x,而a任然指向[1,2,3]。在函数里面可以通过引用x来更改数组的值。但x = [4,5,6] 并不会影响a的指向,所以a仍然是指向[1,2,3,4]
我们如果想a的值变为[4,5,6,7],就必须更改x指向的数组,而不是为x赋值一个新的数组

  x.length = 0; // 清空数组
  x.push(4,5,6,7);
  x; // [4,5,6,7]

//现在a的值也为[4,5,6,7]

相关文章

  • 记录js中一些常用类型值的tips

    记录js中一些常用类型值的tips 如果字符串键值能被强制类型转换为十进制数字的话,它就会被当做数字索引来处理 j...

  • 《JavaScript入门学习》之对象

    认识typeof 看一下js里面常用的一些数据类型的typeof值 可以把以上多个数据类型分成两大类:1.值类型(...

  • js中的布尔类型转换

    js中的布尔类型转换 在js中经常会遇到其他类型的值转换为布尔类型的情况,总的来说js中的值可以分为以下两类 :(...

  • JS中实现浅拷贝和深拷贝

    (一)JS中基本类型和引用类型 JavaScript的变量中包含两种类型的值:基本类型值 和 引用类型值,在内存中...

  • js的变量声明

    js中的变量是弱类型的,可以保存所有类型数据(在JS中变量类型由所引用的值决定),即变量没有类型而值有类型。变量名...

  • 值类型和引用类型

    一、值类型 在js中,number、string、boolean,都是值类型,值类型的数据直接保存在内存的栈空间 ...

  • js的值传递和引用传递

    我们知道js中那些是值类型,那些是引用类型,这是必须要搞清楚。JavaScript中的值类型:数值、布尔值、nul...

  • js中的with语句

    学习过js的童鞋都知道js中我们常用的一种类型是对象。 而提到对象,我们要获取它中的属性值,可以使用如下方法: 好...

  • JS必会基础知识1

    数据类型 js中的数据类型有两类:值类型和引用类型 值类型:number、string、boolean、Symbo...

  • Swift值类型和引用类型

    摘抄来自: objccn-swifter-tips Swift 的类型分为值类型和引用类型两种,值类型在传递和赋值...

网友评论

    本文标题:记录js中一些常用类型值的tips

    本文链接:https://www.haomeiwen.com/subject/qbioettx.html