JavaScript基本概念(一) v0.5
摘要:先简单介绍ECMAScript的语法(如果有其他类C的经验,这个很好理解),接着介绍了ECMAScript的数据类型:Number、Boolean、String、Undefined和Null类型,还有一个Object类型。最后介绍了JS内置函数和操作符的一般执行过程。
语法
区分大小写
ECMAScript中的一切(变量、函数名和操作符)都区分大小写。
标识符
什么是标识符?
指变量、函数、属性的名字,或者函数的参数。格式规则是:
- 第一个字符必须是字母、下划线或者美元符号($);
- 其他字符可以是字母,下划线,美元符号或数字。
不能把关键字、保留字、true、false和null作为标识符。
ECMAScript标识符采用驼峰大小写格式。
注释
没什么好说的。
但是区块注释要注意哟:(v0.5)
/*
var a = /b*/.match(astr);
*/
// 单行注释
/**
* 区块注释
*
*/
语句
ECMAScript中的语句以一个分号结尾。
关键字和保留字
关键字是指有特定用途的符号。
保留字,也不能用作标识符,尽管还没有什么用途。
变量
ECMAScript的变量时松散类型的。可以用来保存任何类型的数据。
未初始化的变量值为undefined。
省略var操作符定义的变量是全局变量。在局部作用域中定义的全局变量很难维护。
数据类型
ECMAScript中有5中简单数据类型:undefined、null、number、boolean和string
还有1个复杂类型Object(无序名值对组成)
typeof 操作符
来检测给定变量的数据类型 ,可能返回以下某个字符:
- “undefined” —— 这个值没定义
- “boolean” —— 这个值是布尔值
- “string” —— 这个值是字符串
- “Object” —— 这个是对象或者null
- “number” —— 这个值是数值
- “function” —— 这个值是函数
Undefined类型
该类型只有一个值undefined
在使用var变量但未对其进行初始化时,变量值就为undefined。
引入这个值的目的是为了正式区分空对象指针和未经初始化的变量。
NUll 类型
只有一个值null 表示一个空对象指针。
如果定义的变量准备在将来用于保存对象,最好初始化为null。
null和undefined之间的相等操作符(==) 总是返回true。
原因是:==操作符先转换再比较。
Boolean 类型
有俩值 true和false
任何非空string、非0 number、任何非null对象都可转化为true。
Number类型
值分为浮点数、整数和NaN
《JavaScript精粹》书曰:(V0.5)
JavaScript只有一种数字类型,在内部被表示为64为的浮点数,它没分离出整数类型,所以1和1.0的值是相同的。
好处是,完全规避了短整数的溢出问题,只需要把它当成一种数字。
(1) 浮点数
必须有小数点,并且小数点之后有数字。 注意浮点数的比较(可不能用 == 操作符哟)
(2) 整数
ECMA能表示的最小数值为Number.MIN_VALUE 最大数值为Number.MAX_VALUE
如果超过了则为 无穷 +-Infinity
Number.NEGATIVE_INFINITY
Number.POSITIVE_INFINITY
isFinite() 用来检测是否有穷。
(3) NaN
非数值是一个特殊的数值
- 任何涉及NaN的操作,都返回NaN
- NaN与任何值都不相等,包括NaN本身
isNaN() 用来检测这个参数是否“不是数值”,任何不能被转换为数值的值都会导致这个函数返回true。
(4) 数值转换
Number() 应用于任何数据类型
规则: Boolean类型的参数 true -> 1 false -> 0
null值 -> 0 undefined -> NaN
parseInt() 专门用于字符串 (用法参见API)
parseFloat() 用于字符串 (用法参见API)
String类型
用于表示由0或多个16位Unicode字符组成的字符序列。
因为JavaScript被创建的时候,Unicode是一个16位的字符集,所以JavaScript中的所有字符都是16位的。(V0.5)
字符串可以由双引号和单引号表示。
(1) 字符串字面量
somestring.length //属性返回的字符数包括字符的数目
(2) 字符串的特点
字符串是不可变的,字符串一旦创建,它们的值就不能改变。
(3) 转换为字符串
- 第一种 toString(),几乎每个值都有该方法。
- 第二种 如果是null和undefined值,则使用String()方法。 返回“null” 和“undefined”
Object类型
对象是一组数据和功能的集合。可以通过new 操作符后跟要创建的对象类型的名称来创建。
Object类型是所有它的实例的基础,Object的每个实例都具有下列属性和方法。
- constructor:保存着用于创建当前对象的函数。
- hasOwnProperty(propertyName): 用于检查给定的属性在当前对象实例(而不是在实例的原型中)中是否存在。参数必须以字符串形式指定。
- isPrototypeOf(object): 用于检查传入的对象是否是传入对象的原型。
- propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for-in 语句来枚举。参数必须以字符串形式指定。
- toLocaleString(): 返回对象的字符串表示,该字符串与执行环境的地区对应。
- toString(): 返回对象的字符串表示。
- valueOf(): 返回对象的字符串、数值或布尔值。通常和toString() 方法的返回值相同。
写在后面的话:
ECMAScript中内置的函数和操作符执行的一般过程:
拿isNaN()举例,函数的参数和操作符的操作数为对象时,
首先调用对象的valueof() 方法,然后确定该方法返回的值是否可以转换为数值。
如果不能,则基于这个返回值在调用toString()方法,再测试返回值。
JavaScript基本概念(一) v0.5的更多相关文章
- JavaScript基本概念(二)
JavaScript 基本概念(二) 操作符和语句 目录 操作符 一元操作符 位操作符 布尔操作符 乘性操作符 其他操作符 语句部分 说起操作符,回忆下上一篇文章末尾说的话. 操作符 一元操作符 ++ ...
- 《JavaScript核心概念》基础部分重点摘录
注:<JavaScript核心概念>适合深入了解JavaScript,比我买的<JavaScript框架设计>语言和内容丰富多了(可能是我水平尚浅吧). 1. 作用域 var ...
- JavaScript的概念,引入,基本数据类型
08.05自我总结 JavaScript 一.概念 JavaScript(下文我们会用简称JS来代替)是脚本编程语言,JS语言开发的文件是以.js为后缀,通过在html文件中引入该js文件来控制htm ...
- Javascript单例模式概念与实例
前言 和其他编程语言一样,Javascript同样拥有着很多种设计模式,比如单例模式.代理模式.观察者模式等,熟练运用Javascript的设计模式可以使我们的代码逻辑更加清晰,并且更加易于维护和重构 ...
- js-js实现,在HTML中使用JavaScript,基本概念
Js实现: 1.JavaScript实现的组成: 核心(ECMAScript):由ECMA-262定义,提供核心语言功能 文档对象模型(DOM)提供访问和操作网页内容的方法以及接口 浏览器对象模型(B ...
- 转:深入理解JavaScript闭包概念
闭包向来给包括JavaScript程序员在内的程序员以神秘,高深的感觉,事实上,闭包的概念在函数式编程语言中算不上是难以理解的知识.如果对作用域,函数为独立的对象这样的基本概念理解较好的话,理解闭包的 ...
- 关于对javascript 提升概念 的总结与思考。
最近在看一本新买的书叫<你不知道的javascript上卷>..买到这本书也算是个巧合 不过真是物有所值.它对js的几个高级概念都做了非常深刻的描述和通过一些通俗易懂的方式来让我们理解.这 ...
- 深入理解Javascript闭包概念
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部能够直接读取全局变量 ...
- JavaScript基本概念
JavaScript概念:JavaScript是一个弱类型语言,而且不要进行编译,是解释性语言.JavaScript最初是为了处理一些相较简单的数据验证,从而减少客户端与服务器端的通信提升效率,发展至 ...
随机推荐
- DataTable数据进行排序、检索、合并、分页、统计
在做程序时经常遇到要将反复对数据进行筛选.求和.排序.分页等的情况.每次的数据操作都要去访问数据库很明显是不合理的!当然需要实时数据的情况除外,不做讨论哈.今天无意间在网上看到了这篇文章,挺实用的,拿 ...
- 【WPF】路由事件
总结WPF中的路由事件,我将学到的内容分为四部分来逐渐掌握 第一部分:wpf中内置的路由事件 以Button的Click事件来说明内置路由事件的使用 XAML代码: <Window x:Clas ...
- WPF的ScrollViewer鼠标的滚动
在C# 中,两个ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一个ListBox.Listview(控件本身有scrollviewer)的时候,我们本想要的效果是鼠标滚动整个S ...
- TypeScript学习指南--目录索引
关于TypeScript: TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程. TypeS ...
- 我的第一个python代码实践:Trie树
Trie树 不解析, 本园很多博文有提到. 直接上代码: #coding:utf-8 ''' create on 2013-07-30 @author :HuangYanQiang ''' LETT ...
- 常用javascript代码片段集锦
常用方法的封装 根据类名获取DOM元素 var $$ = function (className, element) { if (document.getElementsByClassName) { ...
- hdu 4878 ZCC loves words AC自动机+中国剩余定理+快速幂
题意就不说了. 分析:折腾好几天自己写的代码还是看了别人代码后发现几乎没什么复杂度的差别,可是就是一直超时,后来干脆照着别人写啊,一直WA,就在准备放弃干脆先写这篇博客的时候,又看了一眼WA的代码,发 ...
- Java:List,ArrayList和LinkList的区别
1.大学数据结构中ArrayList是实现了基于动态数组的数据结构,LinkList基于链表的数据结构 2.对于随机访问get和set,ArrayList优于LinkList,因为LinkedList ...
- 【HDOJ】2054 A == B ?
这道题目起初看,so easy.再看一下ac率,注意到没有说明变量类型.显然是一道字符串的题.需要考虑+/-符号位,+.1.-.1.00010.0.+0.-00.00等情况,同时数组开到100000以 ...
- Android开发UI之控件-Android-PullToRefresh
下拉刷新,使用的是Android-PullToRefresh,Github--https://github.com/chrisbanes/Android-PullToRefresh PullToRef ...