[TOC]
## eval
把一个字符串变为JS表达式执行,
例如:
```
eval("12+23+34+45") ->114
eval("23,34,45,56") ->56
```
### eval 和 node中的runInThisContext
```
let a = 'ahhh';
eval('console.log(a)'); //ahhh
let vm = require('vm');
vm.runInThisContext(`console.log(a)`); //沙箱 完全隔离 读不到外面的a //ReferenceError: a is not defined
```
## 括号表达式
括号表达式可以执行单个或多个表达式
返回最后一个表达式的值,多个表达式之间需要用逗号“,”分隔开
```
(1,2+3,4+5,6)//代码会被一次执行,最后将6作为返回值
```
### 括号表达式与函数
```
function fn1(){console.log(1)};
function fn2(){console.log(2)};
// ;(function(){
// console.log()
// })();
;(fn1,fn2)(); //->2 ->只有fn2执行了 ->(x1,x2,x3...)括号表达式,一个括号中出现多项内容,中间用","隔开,但是我们最后获取到的结果只有最后一项
function fn1(){console.log(this)};
function fn2(){console.log(this)};
var obj = {name:'ahhh',fn:fn2};
(fn2,obj.fn)(); //->执行的是obj.fn,但是执行的时候里面的this变为了window而不是obj //因为括号表达式中obj.fn相当于是把fn2的值copy一份放进来
(obj.fn)(); //->但如果只有一项,this还是obj
```
- 空白目录
- window
- location
- history
- DOM
- 什么是DOM
- JS盒子模型
- 13个核心属性
- DOM优化
- 回流与重绘
- 未整理
- 文档碎片
- DOM映射机制
- DOM库封装
- 事件
- 功能组件
- table
- 图片延迟加载
- 跑马灯
- 回到顶部
- 选项卡
- 鼠标跟随
- 放大镜
- 搜索
- 多级菜单
- 拖拽
- 瀑布流
- 数据类型的核心操作原理
- 变量提升
- 闭包(scope)
- this
- 练习题
- 各种数据类型下的常用方法
- JSON
- 数组
- object
- oop
- 单例模式
- 高级单例模式
- JS中常用的内置类
- 基于面向对象创建数据值
- 原型和原型链
- 可枚举和不可枚举
- Object.create
- 继承的六种方式
- ES6下一代js标准
- babel
- 箭头函数
- 对象
- es6勉强笔记
- 流程控制
- switch
- Ajax
- eval和()括号表达式
- 异常信息捕获
- 逻辑与和或以及前后自增
- JS中的异步编程思想
- 上云
- 优化技巧
- 跨域与JSONP
- 其它跨域相关问题
- console
- HTML、XHTML、XML
- jQuery
- zepto
- 方法重写和方法重载
- 移动端
- 响应式布局开发基础
- 项目一:创意简历