JavaScript高级编程学习笔记(第三章之一)
继续记笔记,JavaScript越来越有意思了。
继续。。。
第三章:JavaScript基础
- ECMAScript语法在很大程度上借鉴了C和其它类似于C的语言,比如Java和Perl。
- 大小写敏感;变量、函数名、操作符都是大小写敏感的,比如“text”和“Text”不同。
- 标识符:
- 第一个字符必须是字母、下划线或者美元符号($);
- 之后的字符可以是字母、下划线、美元符号或者数字。
标识符中的字母可以是ASCII和Unicode字母比如À and Æ,但是不推荐这样使用。
按照惯例,ECMAScript是采用驼峰命名方式的,如下:
firstSecond
myCar
doSomethingImportant
但是这个惯例不是强制性的。
4.注释:
ECMAScript采用C风格的注释:
单行://….
多行:/*
*这是注释内容
*/
需要注意的是,上面多行的注释中,中间的星号并不是必须的,只是为了比较好的可读性。这种格式是企业级应用偏好使用的。
5.严格模式: Strict Mode: 严格模式的一大目标是让你能更快更方便的调试。详细的解释键MSDN: http://msdn.microsoft.com/en- us/library/ie/br230269(v=vs.94).aspx。
6.js的表达式以分号结尾,但是这个分号不是必须的,只是建议用分号结尾。
7.关键字:

保留字:

8.变量:
变量的赋值,像这样的赋值在ECMAScript中是可以的:
var msg=”zhangzhenqiang”;
msg=1024;
但是不推荐这样使用。
如果一个局部变量没有使用‘var’声明,那么这个变量可以作为全局变量来使用,如下:
function test(){
message=”hi”;//global variable
}
test();
alert(message);//”hi”
只是这种使用也是不推荐的,在严格模式下,这样的使用方法是会抛出”ReferenceError”异常的。
可以像下面这种方式声明变量:
var message=”hi”,
found=false,
age=29;
这里的分行不是必须的,但是这样的可读性更好。
9.数据类型:
在ECMAScript中,有6个数据类型(也叫原始类型):Undefined,Null,Boolean,Number,String,还有一个复杂的数据类型:Object。
10.Typeof操作符:
a) “undefined”:变量的值没有定义
b) “boolean”:变量的值是Boolean
c) “string”: 变量的值是字符串
d) “number”: 变量的值是个数字
e) “object”: 变量的值是object(除了函数)或者是null
f) “function”:变量是个函数。
需要注意的是typeof是一个操作符,所以圆括号不是必须的,但是可以使用。
null的typeof是一个值为空的object。
11.undefined
一个声明但是没有被初始化的变量就是一个undefined。
一个变量的值是undefined的和一个没有声明的变量是不一样的,这两个变量并不相等。
对于一个声明了但是没有初始化的变量,和一个没有声明的变量使用typeof操作符,返回值都是undefined,所以,最好在声明一个变量的时候就初始化这个值,这样当你 对这个变量使用typeof操作符的时候如果返回undefined就知道这个变量是没有声明的,而不是没有被初始化。
12.空值类型(null)
空值类型是第二个只有一个值,特殊的null,的数据类型。逻辑上来说,null是一个空对象指针,这也就是为什么下面的例子中的typeof的值是object:
var zhang=null;
alert(typeof zhang);//”object”
如果定义一个将来赋值是一个对象的变量,那么最好给这个变量初始化为null,而不是其它值。那样的话,在后来的操作中你就可以使用null值来精确的判断这个变量是否已经被赋了一个对象的引用,比如下面的例子:
if(zhang!=null){
//do something with zhang
}
undefined是由null衍生出来的,所以ECMA-262定义了undefined和null在表面上是相等的,也就是说null==undefied=true。
13.Boolean:
布尔类型和数字类型是不相同的,所以说true不等于1,同样的false不等于0。
需要特别注意的是,true和value是大小写敏感的,就是说和True、False(或者其它夹杂这大小写的形式)是不同的。
尽管在ECMAScript中布尔类型的值只有两个,但是所有类型的数据都可以转换成布尔值,可以用Boolean()转换,下图是所有数据类型转换成Bloolean的转换表:

其中’n/a’是not applicable(不使用)的意思。
明白这个道理是很重要的,比如在流式控制中,这些转换会自动完成,而不需要使用Boolean方法:
var msg=”zhang”;
if(msg){
alert(msg);
}
未完待续。。。
JavaScript高级编程学习笔记(第三章之一)的更多相关文章
- JavaScript高级程序设计学习笔记第三章--基本概念
一.标识符: 1.区分大小写 2.命名规则: 第一个字符必须是一个字母.下划线(_)或一个美元符号($) 其他字符可以是字母.下划线.美元符号或数字 标识符中的字母也可以包含扩展的 ASCII 或 U ...
- javascript dom编程艺术笔记第三章:DOM操作的5个基本方法
JavaScript的 DOM操作,主要是对DOM这三个字母中D.O.M的操作.D代表的是document(文档),即我们可以使用javascript对文档进行操作,O代表的是object(对象),对 ...
- Javascript高级编程学习笔记(96)—— WebGL(2) 类型化视图
类型化视图 类型化视图一般也被认为是一种类型化数组. 因为其元素必须是某种特定的数据类型,类型化视图都继承自 Dataview Int8Array: 表示8位二补整数(即二进制补数) Uint8Arr ...
- Javascript高级编程学习笔记(75)—— 表单(3)表单字段
表单字段 表单作为web应用中不可或缺的一部分,当然也是可以使用原生的 DOM 元素来访问的 除了标准的访问方式之外,每个表单都拥有一个 elements 属性,该属性保存着该表单所有 表单元素 的集 ...
- Javascript高级编程学习笔记(3)—— JS中的数据类型(1)
前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...
- JavaScript高级程序设计---学习笔记(三)
函数表达式 定义函数的方式有两种:一种是函数声明,另一种是函数表达式. 关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明所以可以把函数声明放在调用它的语句后面. 而 ...
- Javascript高级编程学习笔记(97)—— WebGL(3) WebGL上下文(1)
WebGL上下文 在支持WebGL的浏览器中,WebGL的名字为 "experimental-webgl",这是由于 webgl 的规范仍未制定完成 制定完成后名字就会改为简单的 ...
- Javascript高级编程学习笔记(49)—— DOM2和DOM3(1)DOM变化
DOM变化 我们知道DOM有许多的版本,其中DOM0和DOM2这两个级别以对事件的纳入标准而为人所知 但是呢,这里不讲事件,在后面会有专门和事件有关的部分作为详细讲解 这里就只讲一下DOM2和DOM3 ...
- Javascript高级编程学习笔记(37)—— DOM(3)Element
Element类型 除了Document类型之外,Element类型应该就是web编程中最常用的类型了 Element类型主要用于表现XML.HTML元素,提供对元素标签名.子节点以及特性的访问 特性 ...
随机推荐
- Systemd-journalctl日志管理
Systemd 统一管理所有 Unit 的启动日志.带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志).日志的配置文件/etc/systemd/journald. ...
- 运维堡垒机(跳板机)系统 python
相信各位对堡垒机(跳板机)不陌生,为了保证服务器安全,前面加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有 身份认证,授权,访问控制,审计等功能,笔者用Python基本实现了上述功能. A ...
- linux编译esp8266
编译工具是xtensa-lx106-elf-gcc,一般会在~/.bashrc文件下添加 export PATH="$HOME/esp-open-sdk/xtensa-lx106-elf/b ...
- 【Winform-自定义控件】一个自定义的进度条
0.选择基类 public class MySlider : Control 1.设置控件的Style 在构造函数里添加: public MySlider() { //1.设置控件Style this ...
- DOM 事件流与事件处理程序
㈠事件流 ▶事件:是文档和浏览器窗口中发生的,特定的交互瞬间. ▶事件流:描述的是从页面中接受事件的顺序 ⑴DOM事件冒泡 定义:事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接受,然后 ...
- 前端Web浏览器基于Flash如何实时播放监控视频画面(三)之使用ffmpeg‘推流’
本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 0x001: 下载ffmpeg 开源免费的推流软件有很多,这里以 ffmpeg 为例.ffm ...
- JVM(一),谈谈你对java的理解
一.谈谈你对java的理解 1.Java特性 (1)平台无关性 一次编译到处运行 (2)GC 垃圾回收机制 (3)语言特性 泛型-反射机制-lambda表达式 (4)面向对象 面向对象语言-三大特性( ...
- jq获取页面中checkbox已经选中的checkbox
var len=$("input[name='bike']:checked").length; //len为0未选中
- jQuery文档操作之插入操作
append() 语法 父元素.append(子元素) 解释:追加某元素,在父元素中添加新的子元素.子元素可以为:string/element(js对象)/jQuery元素 代码如下: var oli ...
- AcWing:146. 序列(小根堆 + 数学归纳 + 贪心)
给定m个序列,每个包含n个非负整数. 现在我们可以从每个序列中选择一个数字以形成具有m个整数的序列. 很明显,我们一共可以得到nmnm个这种序列, 然后我们可以计算每个序列中的数字之和,并得到nmnm ...