深入js之基本语法

周末正好有空就研究了下汤姆大叔的js系列博客,虽然只是学到点皮毛,依然获益匪浅。不得不说大牛的境界岂是吾等小辈可理解。

变量:

js有隐含的全局概念,意味着不声明的所有变量都是全局对象的属性。

function sum(x,y){
    var res = x + y;
    return res;
}

以上隐式声明全局变量的做法会多出一个全局命名空间,这显然不是我们想要的。

function sum(x, y) {
   var res= x + y;
   return res;
}

所以记住始终使用var声明变量。

funtion num(){
    var a = b = 0;
}

以上链式声明变量依然是隐式声明全局变量。有朋友可能会疑惑,在局部里声明的变量怎么就变全局变量了!

但结果就是:a是局部变量,b是全局变量。

这是因为这个从右到左的赋值,首先是赋值表达式b = 0,但b没有声明,自然b就成全局变量了;然后再把0返回给声明了的a。这跟如下的代码同理:

function num(){
    var a = {b = 0};
}

所以一次先声明所有需要声明的变量是比较好的习惯,并且在函数的顶部使用链式分配会更加容易阅读与修改:

function(){
    var a,b;
}

var的另一个比较少用一点的就是:

用var声明的全局变量是不能被delete删除的;而没用var声明的全局变量是能被delete删除。

// 反例
myname = "global"; // 全局变量
function func() {
    alert(myname); // "undefined"
    var myname = "local";
    alert(myname); // "local"
}
func();

这是一个比较少注意到的问题,就是var声明不是放在函数顶部所造成的未定义。你可能会以为第一次弹窗会弹出‘global‘,其实是undefined。

原因是myname被当做了局部变量,而第一个alert时该变量还未声明。等同于以下代码:

myname = "global"; // global variable
function func() {
   var myname; // 等同于 -> var myname = undefined;
   alert(myname); // "undefined"
   myname = "local";
   alert(myname); // "local"}
func();

顺便提一下代码是怎么处理的:第一阶段是解析变量以及函数和参数等,第二阶段才是执行代码。

时间: 2024-10-26 05:17:23

深入js之基本语法的相关文章

7月14日:JS的基础语法

首先,是最近的课程安排: JS的基础语法→BOM→DOM→DOM样式表→JS事件→JS表单→正则表达式: 以下为今天的学习内容: 一.JS的介绍 JS是一种弱类型的解释语言,它用var来定义变量.JS要在网页环境中运行,而Java可以在任何平台使用 二.JS的原始数据类型 undefined:未定义类型和值,无返回值 null:表示不存在的对象 boolean:只有2个值true和false number:数字型,可表示32位的整数和64位的浮点数 string:字符串类型 三.类型的转换 Bo

基础常用JS函数和语法

100多个基础常用JS函数和语法集合大全 来源:http://www.cnblogs.com/hnyei/p/4605103.html 网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏览器窗口中的DOM顺序是:window->(navigator,scr

在MyEclipse中如何去掉JS或jsp语法错误提示!

在MyEclipse中如何去掉JS或jsp语法错误提示! 关于在 MyEclipse 上 WEB 工程里面的 JS/JSP 经常会有语法错误提示,这是由于 MyEclipse 对其语法要求相当严格所造成的,而这些文件本身是可以运行并没有什么错误的,在你实际应用部署中并无影响 . 此问题解决办法有两种: 一.就是您不用去管它提示,直接部署到你的 WEB 容器上运行是可以的,但此方法欠妥当. 二.选择你的工程右击菜单-- > 点击 MyEclipse 菜单项的 Exclude From Valida

梳理一下JS的基本语法

web三层结构来说 结构层:HTML         从语义角度,描述页面结构 样式层:CSS         从审美的角度,美化页面 行为层:JavaScript   从交互的角度,提升用户体验 js:用来制作web页面的交互效果,提升用户体验 语法概述 一.JS引入3种的方式: 1.内嵌引入,但不建议 2.通过`<script async='async'>`标签引入,可放在head里面,为减少加载时间,一般放在body最后 3.建议通过link引入 <script>标记的属性:

什么是js和js的基本语法

时间:2016年12月15日 先讲讲基础语法: 大部分是来操作表单: js动态效果和数据交互(ajax?) js也有自己的API js大部分的DOM操作都是针对input的. 案例学习,对注册页面的简单校验,对于空值或者错误的值先弹框,后面再学习在页面上写数据. js是一种脚本语言,轻量级的,可插入到html页面中运行的语言,和java半毛钱的关系都没有. js有三大块内容: ECMAScript java的基础语法 BOM 浏览器对象模型 DOM 文档对象模型 以后jquery用的也很多,但是

100多个基础常用JS函数和语法集合大全

网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)5.得到表单中元素的名称和值:document.getElementById

js调试 &amp; 基本语法

js调试 打开chrome的调试面板 f12 control+shift+i 右键->检查 调试器 在调试面板中的Sources中 基本语法 变量          对象      ... 表达式      函数 语句 写程序 直接量 var number = 1; 变量 声明变量 var age; var age, name, sex; var age = 12; 标识符 var age = 12; function add(num1, num2) { return num1+num2; }

[JS] javascript基础语法

1.javascript是什么 js是具有面向对象能力的,解释性的程序设计语言. 2.js的类型 [基本类型]:string number boolean [复合类型]:对象(对象,函数,数组) [无类型]:null undefiend 3.typeof 语法:string typeof (变量名) 或者 string typeof 变量名 作用:返回这个变量的类型 4.块级作用域 js没有块级作用域的概念.if while等内声明的变量都是和外面声明的变量是同一作用域的. 5.运算符 ==和!

3)js的基础语法使用以及css定位

Css 定位: background-position: 20px 40px; (1)相对定位: 如果仅仅对当前盒子设置相对定位,那么他与原来的盒子没有任何变化 只有一个作用:  父相子绝,不适用相对定位来做压盖现象 不脱标.形影分离.老家留坑 (2)绝对定位: 设置绝对定位的盒子,脱离标准流 (3)固定定位 1):相对定位: <!DOCTYPE html><html lang="en"><head>    <meta charset=&quo

52 标签的影藏,盒子阴影,三种定位,js导入和语法

标签的隐藏 display: none; 不以任何方式显示,在页面中不占位,但重新显示,仍然占位 opacity:0.5; 修改盒子的透明度,值为0,完全透明,但在页面中占位 盒子的阴影 box-shadow: 150px 0 10px 0 red, 0 150px 10px 0 green; x轴偏移 y轴偏移 虚化程度 阴影宽度 颜色 盒子的三种定位固定定位 当前页面窗口的宽高(锁屏幕尺寸变化而变化):vw vh 一旦打开定位属性,left.right.top.bottom四个方位词均能参与