javascript基础拾遗(一)
1.判断变量类型
var num = '123';
if(typeof num == 'number'){
alert('this is a number');
}
else{
throw 'this is not a number';
}
2.arguments关键字
只在函数内部起作用,函数所有入参
function foo(x) {
console.log('x is :' + x);
for(var i=0;i<arguments.length;i++){
console.log('arguments['+i+']:'+arguments[i]);
}
}
foo(1,2,3);
3.rest关键字
除了函数定义参数外的其他入参
function foo(x,...rest) {
console.log('x is :' + x);
for(var i=0;i<arguments.length;i++){
console.log('arguments['+i+']:'+arguments[i]);
}
console.log(rest)
}
foo(1,2,3);
4.JavaScript会在行末自动添加分号
function foo() {
// right
return {name: 'foo'}
// wrong
//return
//{name:'foo'}
}
result = foo();
console.log(result.name);
5.变量作用域
1)内部函数可以访问外部函数变量,外部变量不能访问内部函数的变量
function foo() {
x = 1;
function calc() {
// right
y = x + 1;
}
}
// wrong
console.log(x);
2)内部函数变量屏蔽外部变量
function foo() {
x = 1;
function calc() {
x = 2;
// 2
console.log(x);
}
// 1
console.log(x);
}
3)变量提升
javascript函数在执行时,会先扫描所有的变量定义,放在函数顶部
function foo() {
var x = 'hello ' + y;
var y ='tomorrow';
// 输出hello undefined
console.log(x);
}
foo();
可以看出,可以执行成功,y有申明,但是y要到下一条语句才会赋值。
4)全局作用域
不在任何函数内定义的变量具有全局作用域
实际上,javascript有一个全局对象window,全局变量被绑定到这个全局对象window
var x = 100
// 100
alert(window.x)
window对象表示浏览器打开的当前窗口,拥有alert,length,height,location,screen等很多属性
5)命名空间
全局变量会绑定到window上,不同的javascript文件使用相同的全局变量会造成冲突。
减少这种问题的一种方法是,把各自的变量和函数全部绑定到各自的全局变量,如:
var MYAPP = {};
MYAPP.name = 'myapp';
MYAPP.version = 1.0;
MYAPP.foo = function(){
return 'foo';
};
6)局部作用域
javascript的变量作用域针对的是函数,像for循环等语句块中的变量,属于块级作用域,是不具有局部作用域的。
function foo() {
for(var i=0;i<10;i++){
}
i = i +10;
// i=20
console.log(i)
}
foo();
ES6引入了let关键字,使用let可以声明一个块级作用域的变量
function foo() {
for(let i=0;i<10;i++){
}
// wrong
console.log(i)
}
foo();
7)常量
ES6引入了const关键字,来申明一个常量
const PI =3.14
8)解构赋值
同时对一组变量进行赋值
var array = ['hello', 'world']
var a = array[0];
var b = array[1];
var [a,b] = ['hello', 'world']
8)异常处理
try{
}
catch(e){
}
finally{
}
javascript基础拾遗(一)的更多相关文章
- javascript基础拾遗(十三)
1.jQuery的特点 jQuery是目前非常流行的javascript库,理念是"Write Less,Do More" 1)消除浏览器差异 2)简洁的操作DOM方法 3)轻松实 ...
- javascript基础拾遗(十二)
1.javascript的单线程特性 在javascript中,所有的代码都是单线程的 因此所有的网络操作,浏览器事件,都必须是异步执行的,异步执行的逻辑是回调. function callback( ...
- javascript基础拾遗(十一)
1.DOM操作 1)查找 //根据id查找 document.getElementById() //根据html标签查找 documnet.getElementByTagName() //根据样式cl ...
- javascript基础拾遗(十)
1.支持ES6标准的浏览器 IE10+ Chrome Safari Firefox 移动端浏览器统一都支持 需要注意的是,不同浏览器对各个特性的支持也不一样 2.window对象 当前浏览器窗口对象 ...
- javascript基础拾遗(七)
1.对象的继承__proto__ var Language = { name: 'program', score: 8.0, popular: function () { return this.sc ...
- javascript基础拾遗(六)
1.Date内置对象 获取系统时间 var now = new Date() console.log(now) console.log(now.getDate()) console.log(now.g ...
- javascript基础拾遗(五)
1.什么是箭头函数 ES6引入的一种新的函数,类似匿名函数,x=>xx 箭头左端为函数参数,右端为函数体 相当于 function (x){ retutn xx } 2.箭头函数的特点 更简洁 ...
- javascript基础拾遗(二)
1.对象定义 定义属性 var language = { name:'javascript', score:9.0 }; console.log(language.name) console.log( ...
- javascript基础拾遗(九)
1.class关键字 ES6引入了新的class关键字编写对象 function Language(name){ this.name = name this.score = 8.0 } Languag ...
随机推荐
- 下载完整版Chrome离线安装文件的官方地址
只在自己账号下安装Download Google Chrome Standalone Offline Installer (32-bit) http://www.google.com/chrome/ ...
- 基于springboot跟poi封装的最便捷的excel导出
发布时间:2018-11-15 技术:springboot1.5.6 + maven3.0.5 + jdk1.8 概述 Springboot最便捷的Excel导出,只需要一个配置文件即可搞定 ...
- Hadoop之我见
最近在学习Hadoop,很想把自己的一些学习遇到的问题以及解决方案分享出来,也碍于最近一堆忙不完的事,就把这事给搁了很久. 那下面我就先来简单说下我为什么要学习Hadoop以及我学习Hadoop的一些 ...
- 【table】给table表格设置一个通用的css3样式(默认有斑马条纹)
/* = 表格(默认有斑马条纹) ------------------------------------------ */ .data-table { margin: 10px 0; } .data ...
- MySQL备份与还原详细过程示例
MySQL备份与还原详细过程示例 一.MySQL备份类型 1.热备份.温备份.冷备份 (根据服务器状态) 热备份:读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份:读.写操作均中止: 2 ...
- Linux-非结构化数据同步-Linux下Rsync+Rsync实现非结构化增量差异数据的同步2
说明: 操作系统:CentOS 5.X 源服务器:192.168.21.129 目标服务器:192.168.21.127,192.168.21.128 目的:把源服务器上/home/www.osyun ...
- Android MD5校验码的生成与算法实现
在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD5 的128 位整数.然后将此 128 位计 ...
- JavaScript三种方式改变标签css
原文地址:https://www.cnblogs.com/xiangru0921/p/6514225.html <body> <div id="div">这 ...
- 基于matplotlib的数据可视化 - 柱状图bar
柱状图bar 柱状图常用表现形式为: plt.bar(水平坐标数组,高度数组,宽度比例,ec=勾边色,c=填充色,label=图例标签) 注:当高度值为负数时,柱形向下 1 语法 bar(*args, ...
- 安卓sdk安装慢解决办法
1.上图SDK Manager 的 Tools ->Options打开SDK Manager的Settings, 选中“Force https://… sources to be fetched ...