1 , javascript字符集: 
javascript采用的是Unicode字符集编码。 
为什么要采用这个编码呢? 
原因很简单,16位的Unicode编码可以表示地球人的任何书面语言。这是语言 国际化的一个重要特征。(大家也许见过用中文写脚本,比如:function 我的函数() {} ); 
Javascript中每个字符都是用2个字节表示的。(因为是16位编码)

2 ,大小写敏感: 
js是一种区分大小写的语言。 
注意下:以前我也犯过的错误。 
HTML是不区分大小写的。经常看见有人这么写, 
<input type=”button” onClick=”a()” /> (这样写是对的) 
如果放到JS中,就必须使用onclick(小写哦!) 
同时XHTML中也只能使用小写。 
这个我们并不需要太关心,象这种问题,其实都可以自己给自己定一个标准,自己写程序的时候全部小写。 
另外每行程序后 分号 也是一样,我们都写上。

3 ,注释: 
单行: 
//   注释1 
/*   注释2 */ 
多行: 
/* 注释3 
* 注释3 
* 注释3 
*/

4 ,标识符: 
标识符就是一个名字,用来命名变量和函数。 
规则:第一个字母必须是字母,下划线(_),或美圆符号($)。 
为什么第一个字母不能为数字? 
如果第一个为数字,js很容易就把它当作数字处理了,那么命名就没意义了,js规定了后,就很容易的区分了标识符和数字了。

5 ,直接量: 
就是程序中直接显示出来的数据值。 
比如:12 , 1.2 , “ hello “ , true , null , [1,2,3,4] 
这些都是直接量。

6 ,保留字和关键字: 
具体是哪些,可以去google.cn。 
其实我们只要不取一些特郁闷的名字,都不会冲突的。

7 ,js数据类型: 
3种基本的类型;数字,字符串和布尔值。 
2种小数据类型:null 和 undefined . (为什么叫小数据类型?因为他们只定义了一个值) 
1种复合类型:object. (在这个类型中,它的值可以是基本数据类型,也可以是复合类型,比如其他的object. ) 
注意:在对象中有一个特殊的对象----function.(它是一个可以执行代码的对象.)

其他的一些对象: 
数组: 
Date类 : 是日期的对象。 
RegExp类: 正则表达式的对象。 
Error 类:js中发生错误的对象。

8 ,使用数据类型注意的地方: 
1):数字: 
由于数字有什么8进制,10进制,16进制等。。。 
八进制:var num = 011; //以"0"开头 
十六进制:var num =0x1f; //以"0x"开头 
所以对于js这个都能识别的语言来说,就必须得注意。 
alert(377);   // 377 
alert(0377);    //255   = 3 * 64 + 7 * 8 + 7 * 1

进行算术运算有个重要的对象:Math. 
具体可以去网上下载手册,查询里面的方法。

2个有用的函数:isNaN()和isFinite() 
isNaN() : 用于检查其参数是否是非数字值。// 提示:是非数字哦。(not a number) 
document.write(isNaN(0) ) //返回false 
document.write(isNaN(5-2) ) //返回false 
document.write(isNaN ("Hello") ) //返回true

isFinite(number) 函数用于检查其参数是否是无穷大。 
如果number是有限的,则返回true. 如果 number 是 NaN(非数字)或者是无穷大,则返回false;

2):字符: 
‘you’re right’; 
这样写的话js会误以为 在you字母后就结束了,引起错误。 
所以当遇到这种情况的时候,必须用到转义。 
我们可以这么写: 
‘you\’re right’; 
另外:你可以 google.com搜索 转义序列表 。

字符串的简单操作例子: 
var a = "cssrain"; 
var b = a.charAt(a.length-1); // 从字符串a中截取最后一个字符。 输出:n 
var c = a.substring(0 , 2); // 从字符串a中截取第1,2个字符。 输出:cs 
var d = a.indexOf('s');   // 从字符串a中查找第一个s出现的位置。 输出:1   
从例子可以看出,基数都是从0开始的。 
var e = a.substring( a.length-1 ); //可以看出,substring第2个参数不写的话, 
//默认 是到最后。 
var f = a.substring( a.length-1 , a.length);//等价于

3):数字跟字符之间的转换: 
数字转字符: 
var number_to_string = number + “ ”; //方法1:添加一个空的字符串。 
var number_to_string =String(number); //方法2:使用String()函数。 
var number_to_string =number. toString(); //方法3:使用toString()函数。 
注:toString()方法默认是以10进制转换。 
如果要使用8进制转换可以 这么写: number. toString(8);

字符转数字: 
var string_to_number = string – 0 ; //方法1: 字符串减去0。 
var string_to_number = Number(string) ; //方法2:使用Number ()函数。 
var string_to_number = parseInt(string) ; //方法3:使用parseInt ()函数。 
方法1中不能 用string+0 ; 这样会导致字符串拼接,而不是类型转换。 
方法2 中的Number函数转换,比较严格。 
比如: 
var a = "19cssrain86"; 
var b = Number(a); //输出NaN. 
如果我们使用方法3。 
var c = parseInt(a); //输出 19 
可以看出parseInt()会自动忽略非数字的部分。 
parseInt()只取整数部分,忽略小数部分。 
parseFloat()会把小数部分也取到。 
和toString()一样,parseInt也有进制,默认是10进制。 
如果想使用8进制,可以这么写: parseInt( “077” , 8 ); // 输出63 = 7 * 8 + 7 
当字符以0开头的时候,我们必须把 第二个参数 指明,不然js可能会以8进制去转换。

4):布尔类型: 
布尔在数字环境中:true 转换为 1 ,false 转换为 0 。 
在字符环境中:true 转换为 “true” ,false 转换为 “false” 。 
布尔转换: 
var x_to_Boolean = Boolean(x); //方法1:使用Boolean ()函数。 
var x_to_Boolean = !x; //方法2:使用 感叹号。

5):函数的定义: 
方法1:普通定义 
function square(x){ 
      return x*x; 

方法2:函数直接量定义 
var square = function(x){ return x*x; }   //推荐使用 
方法3:构造参数 
var square = new Function(“x”,”return x*x;”);   //效率低

6):对象: 
如果有一个名为 cssrain 的对象 , 他有一个高度height的属性。 
那么我们可以这么引用: 
cssrain.height; 
还可以使用关联数组定义:cssrain[“height”];

创建对象: 
方法1: 
var point = new Object(); 
point.x = 3; 
point.y = 5; 
方法2:使用对象直接量 
var point = {x:3 , y:5 } 
当然json也可以咯。

对象在字符的环境下,会调用toString()方法。 
数字环境下,会调用valueOf()方法。 
布尔环境下,非空对象为true;

7):数组: 
常规数组:以非负整数做为下标。image[0] 
关联数组:以字符做为下标。如:image[“width”] 
js不支持多维数组,但数组里面可以嵌套数组。

创建数组: 
方法1: 
var a = new Array(); 
a[0] = “1”; 
a[1] = 2; 
a[2] = { x:1, y:3}; 
方法2: 
var a = new Array(“1” , 2 , {x:1,y:3} ); 
注意下:如果只传了一个参数;比如var a = new Array(3); 
那么它是表示:3个未定义元素 的 新数组。 
方法3:使用数组直接量 
var a =[“1” , 2 , {x:1 , y :3 }]; //注意外面的 括号 , 不是花 括号。

8):null和undefined: 
null表示无值; 
undefined : 使用一个并未声明的变量,或者使用了已经声明的变量但未赋值或者使用了一个并不存在的属性。 
undefined==null 
如果要区分: 
可以使用=== 或者typeof运算符。

9 ,新手常遇到的疑惑: 
var s =”you are right”; 
var b = s.substring(s.lastIndexOf(“ ”)-1 , s.length); 
疑惑:s是对象还是字符串,为什么字符串会有方法呢? 
回答:s是字符串。之所以有方法 ,是因为 string类型 有一个相应的对象类(String)。 
同样数字和布尔都有相应的Number , Boolean类。 
Js会内部进行相应的包装对象。String对象就替换了原始的字符串。

【转】简单了介绍js中的一些概念(词法结构) 和 数据类型(部分)。的更多相关文章

  1. 简单说明一下JS中的函数声明存在的“先使用,后定义”

    首先看一段JS代码,其中使用了两种方式声明了两个函数,分别在不同的地方调用两个函数: <script> 'use strict'; // 输出hello函数 console.log(hel ...

  2. javascript (js)中的基本概念

    1. 基本数据类型 1.1 number (数字)在js中没有整形和浮点型的区分,所有的数字都是浮点型标识, 采用64位的浮点格式来表示数字.如果数字类型用在字符串连接表达式中,则会自动转换成字符串, ...

  3. 主要介绍JavaEE中Maven Web 项目的结构及其它几个小问题

    先说下本篇随笔的目录. 1.介绍windows中环境变量Path与ClassPath的区别. 2.可能导致命令行运行javac编译成功,但 java命令 + 所要执行的类的类名 无效的原因. 3.介绍 ...

  4. ES6深入浅出-7 新版的类(上集)-2.介绍JS中的类

    声明对象原型,公有属性. obj对象,它用一个属性__proto__记录了自己的原型 改掉它的原型为公有属性.那么obj这个对象及有了hi的方法.因为obj自己没有hi.那么就去自己的原型上去找了. ...

  5. js中闭包的概念和用法

    闭包:主要的作用是 封装变量,收敛权限.防止变量被污染.比如Jquery框架就运用了大量的闭包.为什么呢? 问个问题?框架是如何来避免你声明的变量和它自带的变量不发生的冲突的?????很明显,需要闭包 ...

  6. js中原型的概念

  7. js 中闭包的概念

  8. JS中的this变量的使用介绍

    在JavaScript中this变量是一个令人难以摸清的关键字,this可谓是非常强大,在本文将为大家详细介绍下JavaScript中this的使用,感兴趣的朋友可以参考下. JavaScript中t ...

  9. 极其简单的用JS在浏览器中创建下载文件的方法

    有这样一个需求,在js中动态创建一个页面,然后下载该页面为word文档,研究了一上午,最后发现实现起来如此简单. 在js中创建如下方法:(直接复制即可) function downloadFile(f ...

随机推荐

  1. 实例说明Java中的null

    翻译人员: 铁锚 翻译时间: 2013年11月11日 原文链接: What exactly is null in Java? 让我们先来看下面的语句: String x = null; 1. 这个语句 ...

  2. Mahout canopy聚类

    Canopy 聚类 一.Canopy算法流程 Canopy 算法,流程简单,容易实现,一下是算法 (1)设样本集合为S,确定两个阈值t1和t2,且t1>t2. (2)任取一个样本点p,作为一个C ...

  3. 更改EBS R12中forms的模式Servlet/Socket

    EBS R12中forms的模式有:Servlet mode 和 Forms Socket mode 当我们完成Oracle EBS R12套件的快速安装后,forms的默认配置是Servlet mo ...

  4. 理解WebKit和Chromium:Chromium资源磁盘缓存

    转载请注明原文地址:http://blog.csdn.net/milado_nju ## 概述 想象一下,如果没有磁盘缓存的世界.当用户访问网页的时候,每次浏览器都需要从网站下载网页,图片,JS等资源 ...

  5. How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes

    How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes ...

  6. Android性能优化典例(一)

    在Android开发过程中,很多时候往往因为代码的不规范.api使用不恰当.控件的使用场景考虑不全面和用户不恰当的操作等都能引发一系列性能问题的,下面就是我目前整理的一些Android开发过程中需要注 ...

  7. Cocos2d-swift V3.x 中的update方法

    在cocos2d V3.x中update方法如果实现,则会被自动调用;不用向早期的版本那样要显式schedule. 但是你还是要显式schedule其他方法或blocks使用node的schedule ...

  8. 数据挖掘进阶之序列模式分析算法GSP的实现

    序列模式分析算法GSP的实现 一.算法简介 序列模式定义:给定一个由不同序列组成的集合,其中,每个序列由不同的元素按顺序有序排列,每个元素由不同项目组成,同时给定一个用户指定的最小支持度阈值,序列模式 ...

  9. Android 实现高仿iOS桌面效果之可拖动的GridView(上)

    转载请标明出处:http://blog.csdn.net/sk719887916/article/details/40074663,作者:skay      最近项目中遇到一个LIstview的拖动效 ...

  10. 【Android 应用开发】对Android体系结构的理解--后续会补充

    1.最底层_硬件 任何Android设备最底层的硬件包括 显示屏, wifi ,存储设备 等. Android最底层的硬件会根据需要进行裁剪,选择自己需要的硬件. 2.Linux内核层 该层主要对硬件 ...