javascript 总结学习一
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中的一些概念(词法结构) 和 数据类型(部分)。
javascript 总结学习一的更多相关文章
- 正则表达式(javascript)学习总结
正则表达式在jquery.linux等随处可见,已经无孔不入.因此有必要对这个工具认真的学习一番.本着认真.严谨的态度,这次总结我花了近一个月的时间.但本文无任何创新之处,属一般性学习总结. 一.思考 ...
- 大量Javascript/JQuery学习教程电子书合集
[推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人 不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小 15天学会jQuery(完整版).pd ...
- [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人
不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小 15天学会jQuery(完整版).pdf 274.79 KB 21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...
- JavaScript 基础学习1-day14
JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...
- JavaScript正则表达式学习笔记(二) - 打怪升级
本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...
- 初步总结javascript中学习DOM之前的知识
嘿嘿,又到了周末时间,周六其实就是总结这周的学习的,记得周二周三刚开始接触javascript时间,还是不知道怎么学习的,就感觉找不到方向,那时间学习的只是总结了一些简单的定义或者是学习结构,今天就把 ...
- JavaScript紧凑学习
JavaScript紧凑学习 windows本地,调用命令行: win键+R 键入cmd , (cmd是Command 命令行 简称) 目录是C盘下的 C:\Users\Administrator&g ...
- javascript正则表达式 - 学习笔记
JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...
- JavaScript Shell学习分享
目录 JavaScript Shell学习分享 简介 安装 使用原因 小结 JavaScript Shell学习分享 简介 JavaScript Shell是由Mozilla提供的综合JavaScri ...
- JavaScript简易学习笔记
学习地址:http://www.w3school.com.cn/js/index.asp 文字版: https://github.com/songzhenhua/github/blob/master/ ...
随机推荐
- chapter8_3 c代码和错误
1.C代码 Lua提供的所有关于动态链接的功能都集中在一个函数中,即package.loadlib. 该函数有两个字符串参数:动态库的完整路径和一个函数名称: local path = "/ ...
- Openjudge-计算概论(A)-简单算术表达式求值
描述: 两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算:-,减法运算:*,乘法运算:/,整除运算:%,取余运算. 算术表达式的格式为(运算符前后可能有空格):运算数 运算符 运 ...
- Openjudge-计算概论(A)-求特殊自然数
描述: 一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反.编程求此自然数,并输出显示. 输入为1时,输出此自然数的十进制表达式:输入为2时,输出此自然数的 ...
- 可以有效防护XSS,sql注射,代码执行,文件包含等多种高危漏洞。
http://bbs.aliyun.com/read/137391.html <?php /** * 云体检通用漏洞防护补丁v1.1 * 更新时间:2013-05-25 * 功能说明:防护XSS ...
- ural 1353. Milliard Vasya's Function(dp)
1353. Milliard Vasya's Function Time limit: 1.0 second Memory limit: 64 MB Vasya is the beginning ma ...
- 使用gulp构建nodejs,你只需要记住5个函数
gulp gulp是一个nodejs的streaming构建工具,所谓的streaming大致意思就是把构建流程想成一个个链接的管道(pipe). 为什么要这样做呢? 要解释原因,就不得不提到unix ...
- Git客户端SourceTree回滚到远程仓库和切换分支
使用SourceTree将远程仓库回滚到某一次提交 原理:在本地需要回滚的commit上创建一个分支,将该分支合并到远程仓库. 步骤 1.在需要回滚的commit上右键创建分支 创建分支 2.输入新的 ...
- 用开源软件建垂直搜索引擎 转载 http://news.cnblogs.com/n/60041/
用Solr.Nutch等开源软件来构建电子元器件垂直搜索引擎涉及很多实现细节,本文结合实际应用系统对数据采集.中文搜索.结果输出.分页处理.整合数据库等重点问题提出了切实可行的解决方法. 用开源软件建 ...
- shape的使用
android在布局边缘位置处理圆角的两个办法: 1),一个是直接让美工切一张带有圆角的图片. 2),使用shape来解决. 第一种不在赘述,主要讲一下第二中方法来实现. 上边缘出现圆角,下边缘正常的 ...
- Android 调试工具集【转】
1.TraceView1)功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等 2)方法: a)在程序代码中加入追踪开关 import android.os.Debug ...