浅谈JavaScript字符集

JavaScript是区分大小写的:

关键字、变量、函数名、和所有的标识符都必须采用一致的大小写(一般我们都是写成小写的),这样和当初学C#的多样式写法有很大的区别。

比如:(这里以变量str和Str为例)

代码如下:

var str='abc';
var Str='ABC';
alert(str);//输出abc

假如str与Str为同一变量,那么alert(str);,输出的结果应为为ABC而不是如上图所示abc。这恰恰说明:JavaScript是区分大小写的。

Unicode转义序列

Unicode字符集的出现是为了弥补ASCII码只能表示128个字符的限制,而日常中我们想显示汉字和日文的话,显然ASCII是不可能的了。所以说Unicode是ASCII和Latin-1的超集。首先,JavaScript程序都是用Unicode字符集编写而成的,但在一些计算机硬件和软件里根本无法完整地显示或者输入Unicode字符全集(比如:é),为了解决这一现象JavaScript定义了一种特殊序列,这种序列使用6个ASCII字符来代表任意16位Unicode内码,这种特殊序列统称为Unicode转义序列,它均以\u为前缀,其后跟随4个十六进制数

比如:

代码如下:

var str='caf\u00e9';
var Str='café';
alert(Str+' '+str);// 可以看出显示都是一样的效果。
alert (Str===str);//输出true

但我们应该注意一点,Unicode是允许多种方法对同一字符进行编码的,用上述的é转义的例子来说明:

é:

1.可以使用Unicode字符\u00E9表示

2.亦可用e\u0301(语调字符)表示

代码如下:

var str='caf\u00e9';
var Str='cafe\u0301';
alert(str+' '+Str); //如下图所示,Str和str所输出的结果都是一样的
alert(Str===str); //结果是一样的,可它们的二进制编码表示根本不一样,所以输出false

虽然显示在文本编辑器上的结果是一样的,可是它们的二进制编码表示根本不一样,而编程语言最终都会转化为本地平台的计算机机械码(二进制编码),计算机只能通过对二进制编码的比较才能得知结果,所以它们比较最终的结果只能是false

所以这正是 “Unicode是允许多种方法对同一字符进行编码的”最好的解释,因为Unicode标准为所有字符定义了一个首选的编码格式以便于将文本转化成统一格式的Unicode转义序列以合适比较

再次以é为例:

比较facé与café中的é是否相同?

facé与café中的é都转化为\u00E9或者都转化为e\u0301,才能比较facé与café中的é

(0)

相关推荐

  • JavaScript语言对Unicode字符集的支持详解

    上个月,我做了一次分享,详细介绍了Unicode字符集,以及JavaScript语言对它的支持.下面就是这次分享的讲稿. 一.Unicode是什么? Unicode源于一个很简单的想法:将全世界所有的字符包含在一个集合里,计算机只要支持这一个字符集,就能显示所有的字符,再也不会有乱码了. 它从0开始,为每个符号指定一个编号,这叫做"码点"(code point).比如,码点0的符号就是null(表示所有二进制位都是0). 复制代码 代码如下: U+0000 = null 上式中,U+表

  • JavaScript获取网页表单提交方式的方法

    本文实例讲述了JavaScript获取网页表单提交方式的方法.分享给大家供大家参考.具体如下: JavaScript获取网页表单的提交方式是get还是post,获取提交方式可以通过表单的method属性获得 <!DOCTYPE html> <html> <body> <form id="frm1" action="form_action.asp" method="get"> First name:

  • JavaScript获取网页表单action属性的方法

    本文实例讲述了JavaScript获取网页表单action属性的方法.分享给大家供大家参考.具体如下: JavaScript获取网页表单的action属性,即要提交到的url地址,有时候需要提交到当前页面,则可能会设置action为空 <!DOCTYPE html> <html> <body> <form id="frm1" action="jb51.php"> First name: <input type=&

  • Javascript获取表单名称(name)的方法

    本文实例讲述了Javascript获取表单名称(name)的方法.分享给大家供大家参考.具体如下: 下面的代码通过表单的name属性获得表单名称 <!DOCTYPE html> <html> <body> <form id="frm1" name="form1"> First name: <input type="text" name="fname" value="

  • JavaScript获取网页支持表单字符集的方法

    本文实例讲述了JavaScript获取网页支持表单字符集的方法.分享给大家供大家参考.具体如下: JavaScript获取网页支持表单的字符集可通过表单的acceptCharset方法获得 <!DOCTYPE html> <html> <body> <form id="frm1" accept-charset="ISO-8859-1"> First name: <input type="text&quo

  • JavaScript获取表单enctype属性的方法

    本文实例讲述了JavaScript获取表单enctype属性的方法.分享给大家供大家参考.具体如下: <!DOCTYPE html> <html> <body> <form id="frm1" enctype="text/plain"> First name: <input type="text" name="fname" value="Donald"&

  • 浅谈JavaScript字符集

    JavaScript是区分大小写的: 关键字.变量.函数名.和所有的标识符都必须采用一致的大小写(一般我们都是写成小写的),这样和当初学C#的多样式写法有很大的区别. 比如:(这里以变量str和Str为例) 复制代码 代码如下: var str='abc';var Str='ABC';alert(str);//输出abc 假如str与Str为同一变量,那么alert(str);,输出的结果应为为ABC而不是如上图所示abc.这恰恰说明:JavaScript是区分大小写的. Unicode转义序列

  • 浅谈JavaScript 浏览器对象

    window window对象不但充当全局作用域,而且表示浏览器窗口. window对象有innerWidth和innerHeight属性,可以获取浏览器窗口的内部宽度和高度.内部宽高是指除去菜单栏.工具栏.边框等占位元素后,用于显示网页的净宽高.还有一个outerWidth和outerHeight属性,可以获取浏览器窗口的整个宽高. 补充: 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:

  • 浅谈javascript运算符——条件,逗号,赋值,()和void运算符

    前面的话 javascript中运算符总共有46个,除了前面已经介绍过的算术运算符.关系运算符.位运算符.逻辑运算符之外,还有很多运算符.本文将介绍条件运算符.逗号运算符.赋值运算符.()和void运算符 条件运算符 条件运算符是javascript中唯一的一个三元运算符(三个操作数),有时直接称做'三元运算符'.通常这个运算符写成'?:',当然在代码中往往不会这么简写,因为这个运算符拥有三个操作数,第一个操作数在'?'之前,第二个操作数在'?'和':'之间,第三个操作数在':'之后 varia

  • 浅谈JavaScript中面向对象的的深拷贝和浅拷贝

    理解深拷贝和浅拷贝之前需要弄懂一些基础概念,内存中存储的变量类型分为值类型和引用类型. 1.值类型赋值的存储特点, 将变量内的数据全部拷贝一份, 存储给新的变量. 例如:var num = 123 :var num1=num; 表示变量中存储的数字是 123.然后将数据拷贝一份,就是将 123 拷贝一份. 那么内存中有 2 个 数组;将拷贝数据赋值给 num2,其特点是在内存中有两个数据副本.这可以理解为浅拷贝. 2.引用类型的赋值. var o={name:'张三'}: var obj=o;

  • 浅谈javascript中的constructor

    constructor,构造函数,对这个名字,我们都不陌生,constructor始终指向创建当前对象的构造函数. 这里有一点需要注意的是,每个函数都有一个prototype属性,这个prototype的constructor指向这个函数,这个时候我们修改这个函数的prototype时,就发生了意外.如 function Person(name,age){ this.name = name; this.age = age; } Person.prototype.getAge = function

  • 浅谈javascript中的Function和Arguments

    javascript的Function 属性: 1.Arguments对象 2.caller 对调用单前函数的Function的引用,如果是顶层代码调用,  则返回null(firefox返回undefined).  注:只有在代码执行时才有意义 3.length 声明函数是指定的命名参数的个数(函数定义是,定义参数的个数) 4.prototype 一个对象,用于构造函数,这个对象定义的属性和方法  由构造函数创建的所有对象共享. 方法: applay() --> applay(this,[])

  • 浅谈javascript基础之客户端事件驱动

    我们知道,面向对象发展起来后,"一夜之间",几乎所有的语言都能基于对象了,JavaScript也是基于对象的语言.用户在浏览器上的行为称作"事件",之后引发的一系列动作,比如弹窗啦,改变浏览器大小啦,验证啦,balabala,都叫做"事件驱动".当然,这次我主要介绍几个常常发生的事件. ps:对于js脚本的支持以浏览器而定!!!有的低版本的浏览器可能不支持!!! 1.单击事件(onClick) 啥叫单击事件呢?当用户单击鼠标按钮是,就会产生单击事

  • 浅谈javascript中new操作符的原理

    javascript中的new是一个语法糖,对于学过c++,java 和c#等面向对象语言的人来说,以为js里面是有类和对象的区别的,实现上js并没有类,一切皆对象,比java还来的彻底 new的过程实际上是创建一个新对象,把新象的原型设置为构造器函数的原型,在使用new的过程中,一共有3个对象参与了协作,构造器函数是第一个对象,原型对象是二个,新生成了一个空对象是第三个对象,最终返回的是一个空对象,但这个空对象不是真空的,而是已经含有原型的引用(__proto__) 步骤如下: (1) 创建一

  • 浅谈Javascript中的函数、this以及原型

    关于函数 在Javascript中函数实际上就是一个对象,具有引用类型的特征,所以你可以将函数直接传递给变量,这个变量将表示指向函数"对象"的指针,例如: function test(message){ alert(message); } var f = test; f('hello world'); 你也可以直接将函数申明赋值给变量: var f = function(message){ alert(message); }; f('hello world'); 在这种情况下,函数申明

  • 浅谈JavaScript的内置对象和浏览器对象

    在javascript中对象通常包括两种类型:内置对象和浏览器对象,此外,用户还可以自定义对象. 对象包含两个要素: 1. 用来描述对象特性的一组数据,也就是若干变量,通常称为属性. 2. 用来操作对象特性的若干动作,也就是若干函数,通常称为方法. 浏览器对象 对象 含义 anchor 当前文档中设置了name属性的超链接 applet 当前文档中的小程序 area 客户端图形映射中的区域 button 表单中的按钮 checkbook 表单中的复选框 document 当前窗口中的HTML文档

随机推荐