第1章 JavaScript基础语法

1. JavaScript的简介和特点

1.1 简介和特点

JavaScript(简称JS)是一个脚本语言,它是解释执行的(区别于Java的半编译半解释)。是一种“弱类型”的语言。

强类型:Java是一种强类型的语言,声明变量的时候必须指明变量的类型,比如

int a = 32;
a = "haha"; //错误,变量类型一旦声明后不可更改

弱类型:JS是一种弱类型的语言,变量本身没有类型,变量的类型取决于它的赋值,声明变量使用var关键字

var a = 32;
a = "haha";  //正确,可以通过赋值改变变量的数据类型
1.2 在HTML中引入JS的方式
  • 内联方式(极少使用)
    在标记的事件中直接编写JS代码
<input type="button" value="测试1" onclick="alert('哈哈');"/>
  • 嵌入方式
    在页面文件的<script></script>代码块中编写JS代码
<script type="text/javascript">
  alert("abc");
</script>
  • 外联方式(商业使用推荐外联)
    将JS代码编写在外部的.js文件中,通过<script>将外部JS引入

myscript.js

alert("xyz");

xxx.html

<script src="js/myscript.js" type="text/javascript" />

2. JavaScript的数据类型

JS本身是弱类型的语言,变量本身没有类型的概念,变量类型是根据赋值决定。
JS中的数据的类型

  • Number类型:数字类型,包括整数,浮点数,NaN和Infinity
    NaN:是Not A Number的缩写,数字类型的“非数”
    Infinity:无穷大,一般出现在除数为0的情况
  • String类型:文本类型,表示字符串,可以使用单引号或双引号表示。
  • Boolean类型: 布尔类型,表示逻辑真和假
  • Null类型: 表示空
  • Undefined类型:表示未定义类型,通常出现在声明变量但未赋值的情况。
  • Object类型:对象类型,包括数组(Array),日期(Date),函数(Function),对象(Object)...

typeof函数
可以利用typeof(a)得到变量a的类型字符串

var a = 32;
var b = typeof(a);//得到a的类型的字符串表示“number”
alert(b);

数据类型转换
做比较操作时(==),boolean值会被作为数字看待,数字内容的字符串也可以看做数字看待

var b = true;
if(b == 1){
    alert("真");
}else{
    alert("假");
}

b当做数字看待(true-1,false-0),得到结果“真”

var s = "1";
if(s == 1){
    alert("真");
}else{
    alert("假");
}

s当做数字看待,得到结果“真”
==的作用:比较数据内容是否相等,忽略了数据类型
如果需要严格比较内容和数据类型,请使用===

var b = true;
if(b == 1){
    alert("真");
}else{
    alert("假");
}
var s = "1";
if(s === 1){
    alert("真");
}else{
    alert("假");
}

都会得到“假”结果

转换规则
各个数据类型参与运算或表达式的规则:

  • 任何类型与字符串类型相加,得到字符串
  • 进行四则非加法运算时,所有类型都会转换为数值类型计算

使用显式的类型转换

  • Number(str); 将str字符串转换成数值类型
  • 加空字符串形式: 将其他类型转换成字符串
  • boolean:直接参与数值运算即可 true相当于1,false相当于0
var s = "1";
s = Number(s); //字符串->数字
if(s == 1){  //类型统一了,使用==和===效果是一致的
    alert("真");
}else{
    alert("假");
}

3. JavaScript的运算符

除了==和===理解与Java语言不一致,剩下运算符与Java一致。参考Java的第二章理解

4. JavaScript的条件和循环

与Java一致,参考Java的第三章理解
初学者经常写错的循环中的变量声明
Java

for(int i = 0; i < 10; i++){
}

JavaScript

for(var i = 0; i < 10; i++){
}

5. JavaScript的函数

JavaScript相当于Java中的方法或者类,本章节讲解当做方法来使用
Java的方法

public int haha(int a, int b){
  return a+b;
}

JS的方法

function haha(a, b){
  return a+b;  //由return语句决定返回值的数据类型
}

Java的方法调用

int x = haha(2,3);

JS的方法调用

var x = haha(2,3);
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容