В соответствии с документацией MDN вызов array.slice()
создаст мелкую копию массива.
Смотрите ссылка MDN для slice().
Однако, если я запускаю простой тест как таковой в консоли:
var test = [[1,2,3],7,8,9];
var shallow_copy = test.slice();
и проверите мелкую_копию, я вижу, что весь 2-мерный массив, кажется, скопирован.
В чем разница между мелкой копией и глубокой копией? Если бы я догадался, я бы назвал это глубокой копией.