JS中的变量、函数、数据类型及转换

JavaScript是弱变量类型的语言

变量只需要用var来声明。Java,C#中变量的声明,要根据变量是什么类型的来声明:

int a;
float a;
double a;
String a;
boolean a;
var a ;

javascript:变量的使用,数据类型,if判断,循环语句。

变量。

作用:用来存储一些可以变化的数据。
代码:

1.0变量的声明:

var 变量的名称;
var name;

注意命名规则:

1.0取值范围:0-9,a-z,A-Z,_,$
2.0区分大小写
3.0不能用数字开头
4.0不能与关键字和保留字(备胎)冲突。

2.0变量的赋值:

变量的名称 = 要赋值的数据;
name = “abc”;
讲作:将字符串abc赋值给name;在变量a中存储一个数据这个数据的类型是字符串,内容是abc.

3.0变量赋值之后可以使用(使用的方式与直接量一样)。

注意:
变量的取名一定要规范:变量名称的取值范围是:0-9,a-z,A-Z,_,$,并且数字不能作为变量名称的开始部分。
变量的名称是区分大小写的:
变量的名称不能是关键字和保留字(备胎);

javascript代码虽然是从上到下执行的。但是如果js有语法错误,那么浏览器不会执行这里面的js代码。因为浏览器会先去检查js代码是否有错误,如果没有才会从上到下执行。

如果两个变量相加:

两个都是number类型,那么加号的作用是相加
两个都是string类型,那么加号的作用是连接
一个是number另一个是string,那么加号的作用是连接。

js中的函数(方法):

定义函数(声明函数)
function 函数名(参数1,参数2){
    命令代码
}
ps:参数可以有一个或多个以逗号分隔,也可以不传参
调用函数
函数名()
ps:函数声明不调用是不起作用的
return 在函数中返回计算结果

函数的好处

1.可重复利用

2 执行效率快

3 使代码变得清晰易读

4.可封装一部分代码

将一段经常使用的代码用一个方法包起来,将来方便再次调用。

匿名函数

匿名函数就是没有函数名,不需要调用

eg:btn.onclick = function(){}

定时器

开启定时器

1. setTimeout() 只执行一次

停止定时器

   clearTimeout()


2. setInterval() 每隔多长时间执行一次

   clearInterval()

ps:定时器在使用的时候必须定义一个变量将其存起来。

流程控制:

问题:写一段代码,判断张身上有多少钱,如果钱超过300块就请吃大餐,如果不够下次记得带够?

if else
if(判断条件/boolean值){
//满足条件会执行下面的代码
代码1;
}else {
//当上面的条件不满足,或者boolean的值为false的时候会执行下面的代码2
代码2
}

注意:

1.0if后面接有判断条件,else后面没有接判断条件
2.0if和else只能执行一个。
if elseif else
判断张身上有多少钱,如果钱超过300块就请吃大餐,如果超过了200,吃中餐,如果不够下次记得带够?

代码:
if(判断条件/boolean值){
//满足条件会执行下面的代码
代码1;
}else if(判断条件) {
//当上面的条件不满足,或者boolean的值为false的时候会执行下面的代码2
代码2
}
else if(判断条件)
。。。。。
else {
最后代码
}

注意:

1.0在if_elseif_else结构中elseif可以有几数个
2.0整个结构只会执行一个代码段
3.0条件在判断的是时候先写小范围的条件再写大范围的条件。
4.0 elseif后面要加判断条件
5.0一个if可以构成一个完整的结构

switch_case

作用:用来判断多个可能出现的值:
代码:

switch(判断的值){
case 具体值:
要执行的代码段1;
break;
case 具体值2:
要执行的代码段2;
break;
......
default:
要执行的代码段n
break;
}

注意:
1.0case结构后面要跟一个具体的数值
2.0case结构可以有无数个
3.0如果所有的case都不满足,要执行default中的内容
4.0defalut可以不写,并且defalut也不用写条件
js代码的调试:(html,css没有办法调试,只有js代码可调试)
1.0打开开发人员工具,找到source选项:
2.0调试js代码:先在要调试的代码的行号中加上一个断点:
3.0将程序命中断点:刷新页面
4.0点击下一步按钮。

三元运算符:

作用:用于判断两个选择。
代码:
==boolean表达式?代码段1:代码段2;==
执行过程:
判断boolean表达式是否成立,如果成立会执行代码段1,如果不成立会执行代码段2;

排他思想

有排他必循环,先排除后确定

循环:

问题:希望大家能够在页面上输入100个alert(“啊!”)?
有没有一种方式能够让我们将这一百句话以最简单的方式书写出来。

while循环:

作用:反复执行一段代码:
代码:

 while(判断条件/boolean){
    代码块
}

while循环的执行流程:

当代码执行到while的时候,会先判断判断条件是否为true,如果为true,那么会执行while大括号中的代码块,代码块执行完毕以后,再次回到while中再进行判断,如果为true,再次执行while大括号中的代码块,并且再次回while,如果为false就不执行
注意:
1.0将来在写代码的时候一定要注意循环的判断条件不能一直为true,会成为一个死循环。
2.0循环的条件和循环体一定要明确。
3.0将来在实际开发中我们一般不会使用while循环,会使用for循环。

break:

作用:在循环内部结束这个循环。
用法

continue:

作用:在循环的内部结束本次循环,开始下一次循环:

do while:

与while是一样的,唯一的区别就是while先判断再做,do-while,先做再判断;
代码 :

do{
    //要循环执行的代码块
}while (条件语句/boolean)


执行过程:
代码从上到下执行的过程中如果遇到了do就会先执行一次do后面的代码,执行之后再通过while来进行判断,如果判断通过那么再执行一次,如果判断不通过却结束循环。

for循环:

作用:反复执行同一段代码:
代码:

for(var i = 1; 判断条件; i++){
    要循环的代码块:
}

执行步骤:
当程序运行到for的时候,会先声明一个变量i,并且赋值为1,判断i是否满足后面的判断条件,如果满足,执行下面的要循环的代码块,代码 块执行完成之后再执行i++,再判断判断条件是否满足,如果满足再次按照上面的流程执行,如果不满足,直接结束for循环。

数据类型的转换:

string,number(NaN),boolean,undefined
为什么需要数据类型的转呢?

问题:要用户输入一个数,我们将这个数据加一之后再输出?
要将字符串转成number类型以后才能进行计算。
prompt()接收到用户输入的内容是以什么类型来接收来的:
prompt接收到的内容是string类型。

数据类型的转换

显示转换:

1:转数字:
a)Number转换:

代码:
var a = “123”;
a = Number(a);
注意:

如果转换的内容本身就是一个数值类型的字符串,那么将来在转换的时候会返回自己。
如果转换的内容本身不是一个数值类型的字符串,那么在转换的时候结果是NaN.
如果要转换的内容是空的字符串,那以转换的结果是0.

b)如果是其它的字符,那么将来在转换的时候结果是NaN.

parseInt():
代码:
var a = “123”; a = parseInt(a);
忽略字符串前面的空格,直至找到第一个非空字符,还会将数字后面的非数字的字符串去掉。
如果第一个字符不是数字符号或者负号,返回NaN

c)会将小数取整。(向下取整)

parseFloat();//浮点数(小数)
与parseInt一样,唯一区别是parseFloat可以保留小数。

2.转字符串

可以将其它的数据类型转成字符串。

a)String():

代码:
var a = 123;
a = String(a);

b).toString()的方法来进行转换(包装类)。

代码:
var a = 123; a = a.toString();

3.转boolean类型:

可以将其它类型转为boolean值:

a)Boolean():

代码:
var a =”true”; a = Boolean(a);
注意:在进行boolean转换的时候所有的内容在转换以后结果都是true,除了:false、""(空字符串)、0、NaN、undefined

隐式转换:

a)转number:

var a = “123”;
a = +a;
加减乘除以及最余都可以让字符串隐式转换成number.

b)转string:

var a = 123;
a = a + “”;

c)转boolean:

var a = 123;
a = !!a;

数据类型:

简单数据类型:

string
number
boolean
undefined
null

在栈空间中开辟一块内存,将简单的数据类型存储到栈中。

复杂数据类型:

数组:Array
对象:Object;

先在栈空间中开辟一块内存,将数据保存到堆空间中,然后将数据在堆空间中的存储地址放在栈里面去。

共同点:都电脑的运行内存中的一部分。
不同点:

堆:存储空间大,运行速度慢。
栈:存储空间小,运行速度快。

object:对象(数据类型)

作用:可以用来存储数据。
保存小明的信息:
年龄,姓名,性别,爱好
由于通过变量来分别保存这些特征不太方便,所以我们干脆用一个对象来表示小明。

声明对象:

var xiaoming = new Object();

给对象赋值:

xiaoming.age = 18;
xiaoming.name = xiaoming;
xiaoming.sex = “男”;
xiaoming.aihao = “女”;

对象的使用:

如果要得到小明的aihao:
xiaoming.aihao
可以直接通过xiaoming.aihao得到小明对应的爱好。

数组:

问题:如果我要存储10个学生的成绩:
作用:要以用数组存储10个学生的成绩:

声明数组:

var arr = new Array();

赋值:

arr[0] = 67;
arr[1]=59.9;
arr[2]=”abc”;
arr[3]=xiaoming;

取值:

arr[下标];
注意:

1.0数组的下标是以0开始。
2.0数组声明以后,长度可以是无限长。
3.0js中的数组可以存储任意的类型。
数组的遍历:
数组中的一个属性:
arr.length;

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

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,350评论 0 17
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,560评论 18 399
  • 《ilua》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 1...
    叶染柒丶阅读 10,488评论 0 11
  • 东汉末年,群雄并起,战火纷飞,刘备从织鞋贬履一介村夫,桃园三结义起,将不过关张、兵不过千众,既没有曹操挟天子以令诸...
    红尘醉弥勒阅读 867评论 0 4
  • 人生本来就是一场即兴演出,没有做不成的梦,只有不早醒的人。 吃别人所不能吃的苦,忍别人所不能忍的气,做别人所不能做...
    漂浮的流云阅读 533评论 2 2