Chrome控制台中"[Object]"和"[object Object]"之间的区别?

ver*_*joe 6 javascript

我有一些代码如下.

MyRequests.cors_request("POST", 
        APP_CONFIG.APP_URL+"/users/selectAllUsers", 
        null, 
        function ok(users) {  

            $scope.usersNotFiltered = users;

            console.log('users--->', users);
            console.log('$scope.userPerSystem--->', $scope.userPerSystem);

            // delete the items that is already exists in the userPerSystem
            function filterUsers(element, index, array) {

                console.log("$scope.usersNotFiltered :: " + users);
                commonFindAndRemove($scope.usersNotFiltered, 'userId', element.userId);
                console.log('a[' + index + '] = ' + element.userId);
            }

            $scope.userPerSystem.forEach(filterUsers);

            $scope.users = $scope.usersNotFiltered;   
}, 
Run Code Online (Sandbox Code Playgroud)

我运行代码并观看控制台.chrome控制台中'[Object]'和'[object Object]'有什么区别?

用户---> [对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象]

$ scope.userPerSystem ---> [Object] 0:Objectlength:1__proto __:Array [0] redca-ias.concat.js:5258

$ scope.usersNotFiltered :: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

und*_*ned 6

第一个日志显示结构,即结构的实时表示,第二个日志是结构的字符串表示.

> var arr = [{}, {}, {}];
> arr // simply logs the object as it is
> [Object, Object, Object]
> arr + '' // converts the structure into string
> "[object Object],[object Object],[object Object]"
Run Code Online (Sandbox Code Playgroud)

当您将字符串与对象连接时,您会得到此结果:

"$scope.usersNotFiltered :: " + users
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中,JavaScript将结构转换为字符串(原始值)和对象的字符串表示形式[object Object].由于结构是一个对象数组,因此每个元素的字符串表示形式都是连接在一起的,.通过调用Array.prototype.toString()Array.prototype.join()方法得到类似的结果 :

> var arr = [1, 2, 3];
> arr.toString()
> "1,2,3"
> var arrayOfObjects = [{}, {}, {}];
> arrayOfObjects.toString()
> "[object Object],[object Object],[object Object]"
Run Code Online (Sandbox Code Playgroud)