美文网首页
Js相关笔记-1

Js相关笔记-1

作者: 一叶偏粥 | 来源:发表于2018-02-22 20:21 被阅读0次

持续更新,主要方便于存一些笔记。


对象

使用for...in循环,提取对象属性名

var obj = { key1: 1, key2: 2 }; Object.keys(obj); // ['key1', 'key2']

或者:

var obj = {'x':1,'y':2};

 var props = [];var i =0; 

for(var p in obj){

props[i++] = p};

console.log(props);

读取对象属性

var foo='bar';

var obj={foo:1,bar:2};

obj.foo// 1

obj[foo]// 2

备注:引用对象obj的foo属性时,如果使用点运算符,foo就是字符串;如果使用方括号运算符,但是不使用引号,那么foo就是一个变量,指向字符串bar。

var obj={0.7:'Hello World'};

obj['0.7']// "Hello World"

obj[0.7]// "Hello World"

数字加不加引号都可以,因为会被自动转为字符串。

var obj={123:'hello world'};

obj.123// 报错

obj[123]// "hello world"

对数值键名123使用点运算符,结果会报错

var person = { name: '老张' };

for (var key in person) {

if (person.hasOwnProperty(key))

{ console.log(key); } } // name

使用hasOwnProperty方法,在循环内部判断一下,某个属性是否为对象自身的属性。

var obj = {};

with (obj) {

  p1 = 4;

  p2 = 5;

}

obj.p1 // undefined

p1 // 4

如果with区块内部有变量的赋值操作,必须是当前对象已经存在的属性,否则会创造一个当前作用域的全局变量。

数组

var a = [1, 2, 3];

a.foo = true;

for (var key in a) {

  console.log(key);

}

// 0

// 1

// 2

// foo

可以遍历新增key

函数

var obj = { p: 1 };

function f(o) {

  o.p = 2;

}

f(obj);

obj.p // 2

传入函数f的是参数对象obj的地址。因此,在函数内部修改obj的属性p,会影响到原始值。

var obj = [1, 2, 3];

function f(o) {

o = [2, 3, 4]; }

f(obj);

obj // [1, 2, 3]

在函数f内部,参数对象obj被整个替换成另一个值。这时不会影响到原始值。这是因为,形式参数(o)的值实际是参数obj的地址,重新对o赋值导致o指向另一个地址,保存在原地址上的值当然不受影响。

同名参数:

function f(a, a) {

console.log(a); }

f(1, 2) // 2

function f(a, a) {

console.log(a); }

f(1) // undefined

function f(a, a){

console.log(arguments[0]); }

f(1) //

参考自:JavaScript 标准参考教程(alpha) -- JavaScript 标准参考教程(alpha)

相关文章

  • Js相关笔记-1

    持续更新,主要方便于存一些笔记。 对象 使用for...in循环,提取对象属性名var obj = { key1...

  • Node.js 笔记二:入门及GeoNode.js GIS相关库

    Node.js 笔记二:入门及GeoNode.js GIS相关库 入门 node.js之fs模块 Node.js模...

  • js相关笔记

    js相关笔记 1.给元素添加非静态定位的定位属性时,你如果不设置它的left和top或者bottom再或者righ...

  • js相关笔记

    js相关笔记 1.给元素添加非静态定位的定位属性时,你如果不设置它的left和top或者bottom再或者righ...

  • JS相关笔记

    如何使用? 内部 外部引用 ta作为一种脚本语言可以放在html任何位置。 注释 //注释内容 OR /*注释内容...

  • 3D世界

    前言最近在学习three.js,以下是我的笔记。 相关概念了解 1.WebGL与Three.js 1.1什么是We...

  • JavaScript的数据类型

    最近在学习JS的数据类型的相关内容,在此就做一些相关的学习笔记。 一、概述 JS的数据类型总共有7种。 1.num...

  • Javascript原型理解(面试篇)

    本文是学习JS原型相关知识后的总结与笔记:学习文章参考《一文吃透所有JS原型相关知识点》 在面试中会被经常问到JS...

  • Js相关笔记-2

    持续更新,主要方便于存一些笔记。 闭包 function f1() { var n = 999; function...

  • Js相关笔记-3

    原型对象的constructor 修改原型对象时,一般要同时修改constructor属性的指向。 // 坏的写法...

网友评论

      本文标题:Js相关笔记-1

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