文档章节

javascript笔记(JavaScript_Core电子书)-JavaScript基础

诗芷缘瑶
 诗芷缘瑶
发布于 2012/05/10 21:00
字数 774
阅读 109
收藏 3

「深度学习福利」大神带你进阶工程师,立即查看>>>

/**

 * 基本数据类型

 * js指包含五种数据类型:字符串、数字、布尔、NULL对象、undefined

 */

var str = "Hello JavaScript";

var num1 = 12;

var num2 = 1.4;

var bool = true;

var nullType = null;

var undef;

 

alert(typeof str);

alert(typeof num1);

alert(typeof num2);

alert(typeof bool);

alert(nullType);

alert(typeof undef);

 

/**

 * js中的对象包括基本数据类型、new出来的对象类型、数组、函数

 */

var obj1 = new Object();

obj1.strAttr = str;  //属性也是一个对象

obj1.numAttr = num1;

 

var array1 = new Array("1","2","3");

var func1 = function(){alert("function Obj")};

alert(typeof obj1);

alert(typeof array1);

alert(typeof func1);

 

/**

 * js的自动装箱和拆箱

 */

var strObject = new String("Hello JavaScript"); //字符串对象

alert(typeof strObject);

alert(str.length);  //字符串类型自动装箱成字符串对象,拥有length属性

 

 

/**

* js弱类型机制

*/

//js是解释型语言,某对象的具体类型是根据上下文来确定的

var weakT1 = 2+"1";  //"21"

var weekT2 = 2+4;    //6

//在布尔的上下文中,如果某对象不为空(null或undefind)则为true,否则为false

var boolT3;

if(boolT3.item){

alert("boolT3.item not null");

}else{

boolT3.item = new String("item");

}

//可以使用typeof和instanceof来判断对象的具体类型和实例

function showMessage(message,handle){ //此处handle参数为一个函数

if(typeof handle == "function"){

handle(message);

}else{

throw new Error("second param should be a function");

}

}

//当对象为数组时typeof返回是Object,此时可用instanceof来区分(返回是Array)

 

 

/**

* js基本数据类型和引用数据类型区别

*/

var x = 2;

var y = x; //此处赋的是值而非x对象引用,所以y指向内存中某一固定地址

alert(x+"***"+y);

x = 3;   //x改变不影响y

alert(x+"***"+y);

 

var intArray = new Array(1,2,3,4); //js的数组可变长度

var arrayRef = intArray; //此处赋的是对象引用(内存地址),所以arrayRef与intArray指向同一内存地址

intArray.push(5);

alert(arrayRef.toString());

 

 

/**

 * js运算符

 */

//[]:主要用于数组和访问对象属性

var arrayTe = ["A","B","C"];

alert(arrayTe[0]);

//访问一个对象的属性和方法

var objectTe = {

itemF : "item",

itemM : function(){

alert(this.itemF);

}

};

alert(objectTe[itemF]); //对对象属性的访问使用[]最好,防止属性名中包含.的情况

//如不知某对象的属性和方法,可使用以下方法迭代得到

for(var key in objectTe){

alert(key+":"+objectTe[key]);

}

 

//==或!= 和===或!==

//==相等:2个对象类型相同时,比较值/对象地址

//       对象类型不同时,null和undefined相等、字符串转为数字再与数字相比较、其中一个为true,转为1(false转为0)再比较、

//          其中一个是对象,一个是字符串/数字,先把对象转为原始值(toString或valueOf函数)再比较、其他返回false

//===等同于:2个对象类型不相同返回false;两个对象类型相同时,比较值或对象地址

var eqObj1 = {

eqFeild:"eqObj1Feild",

toString:function(){  //重写toString函数

return this.eqFeild;

}

};

var eqObj2 = "eqObj1Feild";

alert(eqObj1==eqObj2);  //true

alert(eqObj1===eqObj2);  //false

alert(1==true);  //true

//建议使用等同来比较

 

// || 用于赋值时(前面为非空则取前面,否则取后面的值)

function Note(name,title){

this.name = name || "死亡笔记";

this.title = title || "Death Note";

this.getName = function() {return this.name};

this.getTitle = function() {return this.title};

}

 

var n = new Note(null,"L");

alert(n.getName());

alert(n.getTitle());

诗芷缘瑶
粉丝 3
博文 14
码字总数 16292
作品 0
珠海
程序员
私信 提问
加载中
请先登录后再评论。
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
Nutch学习笔记4-Nutch 1.7 的 索引篇 ElasticSearch

上一篇讲解了爬取和分析的流程,很重要的收获就是: 解析过程中,会根据页面的ContentType获得一系列的注册解析器, 依次调用每个解析器,当其中一个解析成功后就返回,否则继续执行下一个解...

强子哥哥
2014/06/26
712
0
CSS Browser Selector

CSS Browser Selector 是一个小的 JS 库,可增强 CSS 的选择器功能,支持根据不同的操作系统和浏览器来编写指定的 CSS 代码,可检测浏览器、浏览器版本、平台、平台版本、设备、设备版本、m...

匿名
2013/01/17
2.8K
1
桌面即时贴软件--GloboNote

GloboNote 是一个桌面记事软件,可帮你创建待办事宜、提醒和其他笔记信息。无限制即时贴的数量,可分组整理,支持搜索,可定制文本的显示格式(字体、颜色和大小),可将某个即时贴始终显示在...

匿名
2013/01/21
6.8K
1
在多个浏览器上运行脚本--Queen

假设你想和朋友们玩这么个游戏:你写下某个数字,然后让朋友们猜你写的是什么数字。你的朋友们将不断的给你一些猜测的数字,直到猜中为止。 现在想象你的朋友都是使用的浏览器,这个游戏就相...

匿名
2013/01/24
4.5K
1

没有更多内容

加载失败,请刷新页面

加载更多

没有指定分支的“git push”的默认行为 - Default behavior of “git push” without a branch specified

问题: I use the following command to push to my remote branch: 我使用以下命令推送到我的远程分支: git push origin sandbox If I say 如果我说 git push origin does that push ch......

技术盛宴
32分钟前
11
0
为什么在允许某些Unicode字符的注释中执行Java代码?

问题: The following code produces the output "Hello World!" 以下代码生成输出“Hello World!” (no really, try it). (不,真的,试试吧)。 public static void main(String... args......

富含淀粉
今天
18
0
字符串格式:%与.format - String formatting: % vs. .format

问题: Python 2.6 introduced the str.format() method with a slightly different syntax from the existing % operator. Python 2.6引入了str.format()方法,其语法与现有的%运算符略有不......

javail
今天
22
0
什么是按位移位(位移)运算符以及它们如何工作? - What are bitwise shift (bit-shift) operators and how do they work?

问题: I've been attempting to learn C in my spare time, and other languages (C#, Java, etc.) have the same concept (and often the same operators) ... 我一直在尝试在业余时间学习......

法国红酒甜
今天
32
0
OSChina 周二乱弹 —— 卧槽 李荣浩的契约兽啊

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《红色的回忆》- 痛仰乐队 手机党少年们想听歌,请使劲儿戳(这里) 动弹, 又好多...

小小编辑
今天
67
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部