JavaScript基本语法(一)

JavaScript与java的区别

  • java和JavaScript完全是两个不同的产品,java是面向对象程序设计语言,而JavaScript是一种可以嵌入web页面中的解释性语言
  • java是面向对象的程序设计语言,即使是开发简单的程序,也必须从类定义开始;JavaScript是基于对象的,本身提供了非常丰富的内部对象供设计人员使用
  • 两种语言的执行方式完全不一样
  • 两种语言的变量声明也不一样
  • 代码格式不一样

数据类型和变量

定义变量的方式

JavaScript是弱类型脚本语言,使用变量之前,可以无需定义,想使用某个变量时直接使用即可,所以JavaScript支持两种方式来引入变量:

  1. 隐式定义:直接给变量赋值
  2. 显式定义:使用var关键字定义变量
<script type="text/javascript">
    // 隐式定义变量a
    a = "Hello JavaScript";
    alert(a);
</script>

<script type="text/javascript">
    // 显式定义变量a
    var a;
    a = "Hello JavaScript";
    alert(a);
</script>

JavaScript中的变量是区分大小写的,JavaScript允许一次定义多个变量

var a, b, c;

也可以在定义变量时为变量指定初始值

var i, j = 0, k = 0;

类型转换

JavaScript支持自动类型转换,这种类型转换的功能非常强大,自动类型转换虽然方便,但程序可读性非常差
JavaScript提供了几个函数来执行强制类型转换:

  • toString(): 将布尔值、数值等转换成字符串
  • parseInt(): 将字符串、布尔值等转换成整数
  • parseFloat(): 将字符串、布尔值等转换成浮点数
    当使用parseInt()或parseFloat()时,结果如下:
  • 字符串值:如果字符串是一个数值字符串,则可以转换成一个数值,否则将转换成NaN。
  • undefined、null、布尔值及其他对象:一律转换成NaN
    当使用toString()将各种类型的值向字符串转换时,结果全是object

变量

变量是程序设计语言里最重要、最基本的概念
JavaScript中的变量可以一会儿存储数值一会儿存储字符串;
变量根据作用范围分为全局变量和局部变量:直接定义的变量是全局变量,全局变量可以被全部的脚本访问;在函数里定义的是局部变量,局部变量只在函数内有效。若局部变量与全局变量使用相同的变量名,则局部变量将覆盖全局变量。
JavaScript变量没有块范围,所以会出现以下情况:

<script type="text/javascript">
  //定义全局变量
  var scope = "全局变量";
  function test () {
    document.writeln(scope + "<br />");
    var scope = "局部变量";
    document.writeln(scope + "<br />");  
  }
test();
</script>
image.png

第一次输出的scope值是undefined,而不是“全局变量”,这是因为变量scope在test()函数中已经被覆盖,局部变量在整个test()函数内都是有效的,但此处scope还没被赋值,所以输出undefined

基本数据类型

JavaScript的基本数据类型有:

  • 数值类型:整数和浮点数
  • 布尔类型:只有true和false两个值
  • 字符串类型:字符串变量必须用引号括起来,可以是单引号也可以是双引号
  • undefined类型:专门用来确定一个已经常见但没有初值的变量
  • null类型:用于表明某个变量值为空

数值类型

JavaScript的数值类型包括所有整型变量和浮点型变量,支持科学记数法:<num1>e<num2>
注意:数值直接量不要以0开头。JavaScript不仅支持十进制,还支持其他进制,八进制以0开头,十六进制以0x或者0X开头
当数值变量的值超出了其表数范围时,将出现两个特殊数值:Infinity(正无穷大)和 -Infinity(负无穷大)
Infinity、-Infinity与其他数值进行算术运算时,整个算术表达式将变成另一个特殊值:NaN。但Infinity和-Infinity可以执行比较运算:两个Infinity总是相等的,两个-infinity也总是相等的
JavaScript中的算术运算允许除数为0(除数和被除数也可以同时为0,得到结果为NaN),正数除以0的结果是Infinity,负数除以0的结果是-Infinity。
NaN是另一个特殊数值,它是Not a Number三个单词的首字母,表示非数,NaN不会与任何数值变量相等,NaN == NaN返回false,判断一个变量是否为NaN,JavaScript提供了isNaN()函数来判断。

字符串类型

JavaScript的字符串必须用引号括起来,可以是单引号也可以是双引号。JavaScript中比较两个字符串是否相等,使用==即可。
JavaScript以String内建类来表示字符串,String类里包含了 一系列方法操作字符串:

  • String(): 类似于面向对象语言中的构造器,使用该方法可以构造一个字符串
  • charAt(): 获取字符串特定所引处的字符
  • charCodeAt(): 返回字符串中特定索引处的字符所对应的Unicode值
  • length(): 属性,直接返回字符串长度。JavaScript中的中文字符算一个字符
  • toUpperCase(): 将字符串的所有字母转换为大写字母
  • toLowerCase(): 将字符串的所有字母转换为小写字母
  • fromCharCode(): 静态方法,直接通过String类调用该方法,将一系列Unicode值转换成字符串
  • indexOf(): 返回字符串中特定字符串第一次出现的位置
  • lastIndex(): 返回字符串中特定字符串最后一次出现的位置
  • substring(): 返回字符串中的某个子串
  • slice(): 返回字符串的某个子串,功能比substring更强大,支持负参数
  • match(): 使用正则表达式搜索目标子字符串
  • search(): 使用正则表达式搜索目标子字符串
  • concat(): 用于将多个字符串拼接成一个字符串
  • split(): 将某个字符串分割成多个字符串,可以指定分隔符
  • replace(): 将字符串中某个子串以特定字符串代替

indexOf()与lastIndexOf()

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

推荐阅读更多精彩内容