C3、JS基本语法2
js
一、字符串
- 字符串要写成多行,可以在末尾加入 \
- base64 可以使用atob() 进行编码 btoa()解码
二、对象
- 对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
- 键值对,如果键全是数字则自动转换成字符串,数字开头的混合要加入双引号(最好都加入双引号)
- 键值对的表示的是对象的引用(类似java中的实例引用指向其他对象),但只限于对象,如果是原始类型则不可以这样操作。
- {foo:123} 有歧义,可能被解析成表达式或者代码块,所以所有表达式冲突都要用()括起来。没有()理解成代码块,有()理解成对象。
- foo.p或者foo['p']来取得属性,但是p要加入'',否则取自变量。
- 查看所有属性 Object.keys(obj)
- delete 用于删除对象属性,删除成功返回true
- in 用于检查是否存在某个属性
- for in 可以遍历所有可以遍历的属性,以及继承的可遍历属性
- with 用于操作统一个对象不同属性方便操作
三、数组
- 本质是个object
- 数组不能使用.xx来取值
- 可以对length进行赋值改变数组长短
- delete删除会形成空位,长度不会改变,遍历的时候空位会被跳过
四、函数声明方法
- function foo(){}
- var r = function(){}
- var foo = function f(){} 这样定义f只能在函数内部使用
- 第一等公民,函数与其他数据地位平等,因此在js中又称函数为第一等公民
- 函数作用域,只能在函数内部访问。只有在函数域内定义的变量是局部变量,其他地方的变量都是全局变量。
- 函数省略的参数值会变成undefined
- 多个参数传入,arguments对象来实现读取,严格模式下不允许写入
- 闭包有作用:1.读取内部函数的变量2.使得内部变量始终保持在内存中(有点像static)
3.封装私有属性和私有方法(注意不要滥用闭包,每次闭包都会产生变量存储在内存中不能释放,用多会产生性能问题) - 函数立即调用表达式 (function(){})('hello')
- eval函数能把字符串转换为程序执行。
@850649506
2018-06-20 09:52
字数 856
阅读 0