JavaScript的基本知识

目录

  1. 语句、变量、标识符
  2. 条件语句和循环语句
  3. 数据类型

1.语句、表达式、变量和标识符

语句:完成特定指令的代码,相当于告诉计算机我要你完成什么操作

  • 语句以分号为结束标志
  • js执行代码的单位为行,一行可以包含多个语句
//这是一个语句
var a=1;
//一行中可以包括多个语句,但要以分号隔开
var a=1;var b=3;var c='hello world'

表达式:一个返回值的计算式

//赋值符'='的右边是一个表达式
var a=1+3;

变量:是一个可以装动态变化的值的容器,每个容器都要有名字,叫做变量名

  • 变量要事先声明才可使用
var a;
a=1;
//等价于
var a=1;
//可以同时声明多个变量并赋值
var a,b,c;
var name="Gates", age=56, job="CEO";
  • 未声明变量而使用会报错
  • 只用var就可以声明所有类型的变量,与C语言不同
//声明变量为数值
var a=1;
//声明变量为字符串
var b="hello world";
//声明变量为数组
var c=[1,2,3]
//声明变量为对象
var d={"name": "teren","age": 18}
  • 变量可分全局变量和局部变量
    • 全部变量作用于整个作用域
    • 局部变量作用于局部的作用域
    • 全局变量若定义在函数体时,只有调用函数才会作用于全局
      【注】关于全局变量和局部变量以及作用域在后续文章完善

变量提升:js引擎在解析js时,会先扫描一遍代码,然后再获取所有被声明的变量
【注意】

  • 变量提升是提升到该作用域的最上面
  • 使用函数声明方法定义的函数将整个代码块进行提升
  • 函数作用域内声明的函数只有在调用时才提升
//下面代码执行的顺序是var a; console.log(a) ; a=1
console.log(a)
var a=1;
//下面代码中的var a是提升到f2(){}的花括号里面的最上面
function f(){
  function f2(){
    console.log(a)
    var a=1
  }
  f2()
}
f()

标识符:标识对象的命名规则

  • 首字符,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
  • 第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字0-9
  • 不可以使用运算符,如+,-,*
  • 不可以使用js的保留字、关键字以及Infinity、NaN、undefined

2.条件语句和循环语句

条件语句:特定的语句集合,具有判断条件执行语句功能

  • if条件语句
//if 语句
var age=18;
if (age<18){
  console.log('you are already a yougster')
}
//if else语句
var fruit;
fruit='apple';
if (fruit='apple'){
  console.log('apple')
}else{
  console.log('not an apple')
}
//if else if语句
var fruit;
fruit='orange';
if (fruit==='apple'){
  console.log('apple')
}else if(fruit==='peach'){
  console.log('peach')
}else{
  console.log('i don\'t know')
}
//注意: 千万不可以写成if (fruit='apple')
//if的嵌套
var score=100;
if (score>=60){
  if (score>=60 && score<70){
    console.log('D');
  }else if (score>=70 && score<80){
    console.log('C');
  }else if (score>=80 && score<90){
    console.log('B');
  }else{
    console.log('A');
  }  
}else{
  console.log('fail');
}
  • switch 语句
var color='#fff';
switch (color){
  case '#fff':
    console.log('white');
  break;
  case '#000':
     console.log('black');
  break;
  default:
    console.log('whatever');
}

【注意】switch语句后面的表达式与case语句后面的表示式,在比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==),这意味着比较时不会发生类型转换。

  • 三元运算符
var a,b;
a=3;
b=6;
(a>b)?console.log(a):console.log(b)

循环语句:用于重复执行特定操作

  • while循环
var i;
i=0;
while (i<10){
  console.log(i);
  i++
}
  • for 循环
var i;
for(i=0;i<10;i++){
  console.log(i);
}
  • do while循环
  var i;
  i=0;
do{
  console.log(i);
  i++
}while (i<10);

【注】do while语句会事先执行一句代码,再判断循环条件,同时注意while必须要以分号结尾

3.数据类型

无论是常量还是变量,只要存放或没存放值都会用相应的值的数据类型。JS的数据类型有6种:

  • 原始数据类型
    • 数值,包括整数和小数
    • 字符串
    • 布尔值
  • undefined
  • null
  • 对象
    • 狭义的对象
    • 数组
    • 函数
  • 判断数据类型的方法:typeof 运算符
    • 对于未声明的变量a,使用typeof a会显示undefined,不使用会直接报错
a
// ReferenceError: a is not defined
typeof a
// "undefined"

【注】至于为什么会出现这种情况,笔者猜测前者js运行时整体逻辑的断错,而typeof是该方法对各种状况的考量

typeof 123;

"number"

typeof '123'

"string"

typeof false

"boolean"

typeof undefined

"undefined"

typeof null

"object"

function a(){}

undefined

typeof a

"function"

a={}

[object Object] { ... }

typeof a

"object"
  • 其他情况都返回object
typeof window // "object"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"

【注】以上内容整理主要出自阮一峰的技术博客、饥人谷导师的教学资源以及一些网络资料

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

推荐阅读更多精彩内容