您的位置:首页 > Web前端 > JavaScript

js基础01

2016-05-07 22:40 357 查看
day01

js编写页面特效动态脚本类型的语言

变量:存储数据(日常生活中的东西,比如电视,手机,电脑,出生年份。。。)

语法:

var obj=value;

obj不能为数字开头,且区分大小写

value对应数据类型,如number string bool null undefined

概念

内存中存储数据的存储空间,并起一个别名

使用

创建

通过var方式 加上一个别名

var obj;

赋值

将等号右边的数据保存到等号左边

obj=value;

取值

在任何位置使用变量名造次使用变量中的值

console.log(obj);

简写:var obj=value;

****

声明提前

在执行程序之前,js引擎会预读所有var声明的变量

集中到顶部创建,赋值会留在原地

原来的

console.log(i);//undefined

var i=0;

console.log(i);//0

引擎修改后

var i;

console.log(i);//undefined

i=0;

console.log(i);//0

仅声明未赋值,会出现一个undefined

var obj;//undefined

仅赋值未声明(强烈不建议使用,虽然不会出错)

m=12;

未赋值未声明 obj is not defined

k

原型类型(基本类型)

number:数值

var s1=1,s3=2.5;

特殊情况:舍入误差

可能在计算过程上,可能会出现计算不尽的情况,通过

四舍五入方式来处理:i.toFixed(int)

占用8字节

1kb=1024b

1gb=1024mb;

string:字符串

通过引号(双,单)都可以的

使用了国际标准:unicode

一旦创建无法修改,只能创建或者替换

一个英文,数字占1b,一个汉字2b

什么情况下使用数字(原因是数字运算快)

比如价格,数量,年龄等,只要不含非数字的都使用number

只要含有非数字的都使用string

boolean:布尔

true--1

false--0

undefined:未定义

null:空

其他:

强类型:开发大型底层应用 :c ,c++ java

弱类型:开发高层应用(网页):js,python ,php

特点

声明变量时,无须指定数据类型

同一个变量,可以先后使用不同的数据类型

它会根据自身情况,'自动'的进行数据类型的转换

自动(隐式)转换

不需要程序员干预的,js自动帮我们程序员完成的

算数运算中

+,-,*/ %

默认情况下,会将数据转换成数字,然后计算

var s1=1,s2='2';

s2-s1 s2*s1 s2/s1 ....

+(重点)

如果2个变量进行计算时,其中一方

是字符串,那么就采用字符串拼接

如果转换不成数字,NaN(not a Number)

手动(强制)转换

程序员通过调用某些函数来完成类型的操作

任意类型转字符串的2个方法

x.toString():(除null和undefined外的其他都可以处理和面向对象的时候)

String(x):万能的(隐式处理)

typeof(obj):用于判断数据的类型

x.valueOf():只能 获取变量的内部值,进行类型转换

任意类型转数字

Number(x):(自动转换,只转换为纯数字的)

特殊:

null 0

'' 0

true

针对字符串的--数字

parseInt(x)

从左到右,依次读取X中数字字符串直到碰到

第一个非数字字符串就退出

无法识别小数部分

自动跳过空字符串

parseFloat(x)

识别小数的

将字符串转换为数值

Number与parseXXX;

前一个是万能的 ,后一个是字符串

如果字符串结尾有位置,使用后一个

任意类型转布尔

除0 NaN,null,undefined,''-->false;

其他为true

算数运算符:+ -* /% ++ --

%求余

先整除,再取除不尽的余数部分

10%3=1

步骤:1:10/3=3;

2:余数为1

何时使用:

判断能否被某个数整除时

比如说,能被2整除的

4,5,6,7,8,9,10 %2==0

被2整除余数是否是0

限制运行结果的上限时

比如我要限制3到

3,4,5,6,6,7,8/3

++ --(自增1,自减1)

将结果保存给变量

如果++,--在程序叫独立一行使用的话

i++ ++i的情况是一样的

如果参与运算如下

++i返回新值

i++返回旧值

var s=1;

console.log(s++ + s++ + s++ + s++)

1 2 3 4

如果是旧值,那么第一位返回1 ,从第2位开始加1

如果是新值的话,从第1位开始直接加1,如下

console.log(++s + ++s + ++s)

2 3 4

console.log( s++ + ++s + ++s + s++)

1+(2+1) (3+1) (4+1)

a++ + a++ + ++a + ++a

3+(3+1)+(4+1)

var a=1;

console.log( a++ + ++a + a++ + a++ + ++a );

//1+3+4+3+6=10+7

我的想法是将相同的如a++先进行计算 ,接着把++a的进行计算

最后将2个结合

如果前面的值已经加过了,那么继续累加的记录会给后面+1,以此类推

关系运行:做比较!返回boolean类型false true

> < >= <= != ==相等 ===全等 !==全不等

NaN不等于,不大于,不小于任何值(包括自己)

判断isNaN(x)如果是NaN的话,返回true 否则false

与任何数据做!=比较永远为true

null:主动清空一个变量(内存)

undefined:所有变量默认值

==无法判断null,undefined

原因是==自带自动转换''

===可以解决不自动转换

关系运算符

> < <= == != === !==

将多个关系运行综合得出的结论

做判断时返回true/false bool

&&与 所有条件为true则为true

||其中一个条件为true则为true

!取反

对++(自增1) --(自减1)进行重新温习

++在前返回新值

++在后返回旧值

var i=1;

++i + ++i + ++i + ++i

1+1 2+1 3+1 4+1

i++ + i++ + i++ + i++

1 1+1 2+1 3+1

i++ + ++i + ++i + i++

2 [3] 4 5

1 3 4 4

短路逻辑:当有多个条件时,只要前一个条件已经得出最终结论,后续条件不再执行

2:

1条件,1件事,满足条件执行,否则不执行

语法:表达式1&&(值1)

如:

var d1=prompt('请输入价格');

d1>=500&&(d1=d1*0.8);

console.log(d1);

设置默认值:||

var d1=prompt('请输入内容');

console.log(d1||'没有内容');

计算一个结果如果条件1满足时,那么输出此条件

var d1=prompt('请输入成绩');

d1>=60&&(console.log(d1))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: