js基础
来源:互联网 发布:爱奇艺自制网络剧破案 编辑:程序博客网 时间:2024/06/02 04:59
http://javascript.ruanyifeng.com/
https://github.com/airbnb/javascript#es6-computed-properties
1、语句
JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。
2、变量
注意:整数和浮点数都是64位浮点类型var a; // 声明a = undefineda = 1; // 拿旧的变量赋值var a = 1; // 声明并赋值 a = 1var a = 1; // 声明并赋值var a = 2;// 只有赋值,没有声明 var a = 任意对象
3、区块
{ var a = 1;}a = 5; // 区块内的变量可以在块外面使用,块没有单独的作用域范围
4、if 、switc 、 for 、if..else、?: 、do..while 跟 C++语法一样
while(n -- > 0) n会以+1或者-1
5、break、continue和c++一样
6、标签跟C的go to是一样的
7、typeof 返回对象类型
8、自动转换成false的有undefined、null、false、0、NaN、‘’或者“”(空字符串)
9、强制转换函数有parseInt、parseFloat
10、字符串字符编码转换
var a = "a"var b = "b"var c = a + b; // c="ab" // +号可以字符串连接var key = c[1] //c[1] = b//可以索引从0开始
11、对象
var a = {} 、var a = new Object()、var a = Object.create(Object.prototype)// 3个是一样的
复合对象传值都是传引用的
var a = {} // 声明并初始化对象var b = a // 引用a的对象a.key = 1;b.key// b.key = 1b = {}// b进行其他的引用,b != ab.key = 10a.key // a.key=1// 取消引用后进行操作不会对旧的对象造成影响
eval('({foo : 123})' // {foo :123} // eval 是执行把字符串当成语句执行
for ..... in 遍历对象所有可以遍历的属性,包括继承
with 操作对象多个属性,在运行的时候才判断,运行效果慢
with (o){ a = 1; b = 10;}等于o.a = 1; o.b = 10
12、数组
var a = []// 初始化数组var b = [1, '1', "111"]
lenght 可以控制数组的长度,
var arr = ['a', 'b', 'c']arr.length // 3arr.length = 2 arr //['a', 'b']arr.length = 0 // 则清空数组
13、in运算符
判断某个键名是否在列表中
var arr = ['a', 'b']'a' in arr // true'ac' in arr // false// 数字 和字符串数字是一样的var arr = ['1', '2']1 in arr // true'1' in arr // true
14、function
function print (){} 等于 var print = function() {}print.name // function后面跟着的名字print.length // 返回预期传入参数个数函数参数不是必须的,实参个数比预计参数个数少的会被默认为undefinedarguments[0]是第一个参数 arguments[1]是第二个参数,这个对象只能在函数内部使用。arguments.length 获取实际传入的参数数量
15、作用域
函数外声明的变量是全局变量、函数内声明的变量是局部变量
16、=== 和==
===会先比较类型,在比较值
== 会先把2个值转换成同个类型,然后在比较
17、自动转换
123 + 'abc' // '123abc' '5' - '3' // 2 字符串数字算数运算 自动转换成数字if ('abv'){} // 对非布尔值类型求布尔值// 3. 对非数值类型的数据使用一元运算符(即“+”和“-”)+ {foo: 'bar'} // NaN- [1, 2, 3] // NaN
18、继承
子类调用父类的构造函数: 父类名.call(this) A.call(this)
call函数主要是指定调用函数所在的作用域,这个主要是方法内的this体现出来
var counter = { count: 0, inc: function () { this.count++; } 1、counter.inc() // this = windows 2、 var test = new counter() test.inc()// this = test 3、 var func = counter.inc func() // this = windows 4、 var test = new counter() var func = test.inc() func() // this = windows 这个就相当于windows.func = test.inc() 然后在windows.func() 5、 var test = new counter() var func = test.inc() func.call(test) func() // this = test 这个是func方法指定一个test作用域,相对于 test.func() 6、apply 跟call是一样的,只是参数apply是[]类型,而call需要一个一个的传入 var test = new counter() var func = test.inc() func.apply(test) func() // this = test 这个是func方法指定一个test作用域,相对于 test.func() 7、 var test = new counter() var func = test.inc.bind(test) func() // this = test 这个已经把作用域绑定到方法内了 参照: http://javascript.ruanyifeng.com/oop/this.html#toc6};
19、定时器
setTimeout 参数1.回调的方法,参数2多少毫秒后回调,参数3....n都作为回调方法的参数传入
setInterval
定时器回调函数的this都是windows
参考网站: http://javascript.ruanyifeng.com/advanced/timer.html
阅读全文
0 0
- js基础
- js基础
- js基础
- js基础
- JS基础
- js基础
- js基础
- JS基础
- js基础
- js基础
- js基础
- js基础
- JS基础
- js 基础
- js-基础
- js基础
- js基础
- js基础
- vue 子组件向父组件发送数据
- form 表单字段 autocomplete 设置为off 后仍然无效的解决方法
- 离群点检测方法
- LeetCode
- 接口和形式参数
- js基础
- POJ-3984迷宫问题dfs
- gulp教程 前端工作环境的搭建
- Java反射生成对象注入spring(结合工厂模式)
- 变态跳台阶
- python中set(集合)类型的操作
- lintcode刷题系列:链表排序----归并排序 递归
- Java第一个设计模式----单例设计模式
- ABAP实例:如何设计和使用自定义的权限对象