变量
声明变量同时赋值
var name='亚索';
var number=20;
先声明变量再赋值
var name
name = '亚索';
var name, toop ,node;
name = '亚索';
toop = 'EQ闪';
node = 'R三风';
基于变量声明其他变量
var Ahead = 20;
var Yasuo = '亚索的人头数是'+ Ahead +'个';
var Flash= 50 ;
var present = `一局比赛${name}用了${Flash}个闪现`;// 注意 这里使用的是 `` 反引号
通过.可以访问变量的属性,如length
var Jess = "相信我:如果我们够机灵的话,皮尔特沃夫就能强势地面对任何威胁。我就是个活生生的例子。——杰斯";
》Jess.length
> 46
获取字符串的最后一个字符
var Jess = "相信我:如果我们够机灵的话,皮尔特沃夫就能强势地面对任何威胁。我就是个活生生的例子。——杰斯";
》Jess[Jess.length-1]
> 斯
![](https://img.haomeiwen.com/i6345778/b30e9679f8353071.png)
更改变量
通过++可以让变量自增 1,--可以让变量自减 1。
var numder = 6 ;
numder++ // ++后 numder 会变成 7
numder-- // --后 numder 会变成 6
数据类型
数字 Number
字符串 String
布尔值 Boolean
对象 Object
Null
Undefined
Symbol //ES6
var age = 18 ; //数字
var string = '在哪里'; // 字符串
var valid = true; // 布尔值
var young = (age => 16 && age <= 50) // 布尔值
var ljh = { //对象
name:{zh:'陆家华',en:'ljh'}, //对象
height:179, //对象
} //对象
通过 . 访问对象的属性
》ljh.height
> 179
》ljh.name.zh
> ''陆家华
弱类型
JavaScript 是一门弱类型的编程语言,因此声明变量的时候不需要同时声明数据类型。
typeof操作符查看数据类型
重新赋值可以改变变量的数据类型
>var a = 'Apple';
→undefined
>typeof a // 查看 a 的数据类型
→"String" //当前变量的数据类型 字符串
>a=97; //重新赋值 数字
→97>
typeof a //重新赋值数字后, 查看 a 的数据类型
→"number" //数字类型
![](https://img.haomeiwen.com/i6345778/ab6514552bcd805f.png)
ES6
let 不允许在同一作用域内使用 let 重复声明变量
let
是一个快状声明域的变量 , 一声明就不可修改
if(navigator.language) {
letlanguage=navigator.language;
console.log('当前浏览器语言是'+language);
}
若尝试在if代码块外访问language会报错。
language
× UncaughtReferenceError:language is not defined
const 常量
const 常量 一声明就不可修改
const CHINESE_YEAR_2017='鸡';
CHINESE_YEAR_2017='鸡';
CHINESE_YEAR_2017='狗';
× UncaughtTypeError:Assignment to constant variable.
使用const声明常量 必须 同时赋值 ,否则会报错。
全局变量
在顶层环境声明的变量是全局变量。应该尽量避免使用全局变量。
使用var声明的全局变量会成为顶层对象window(浏览器) 或global(Node.js) 的属性。
>varhi='Hi!'→undefined>hi→"Hi!">window.hi→"Hi!"
在非严格模式下,如果没有通过var let或const直接声明的变量会成为全局变量。
functionhello() { message='你好';}hello();
>message
→"你好"
>window.message
→"你好"
使用 let 或 const 声明的全局变量 不是 顶层对象 window (浏览器) 或 global(Node.js) 的属性。
>let face='狗';
→undefined
>face
→"狗"
>window.face //在顶层对象 window (浏览器) 或 global(Node.js) 上 找不到 face 的属性
→undefined
本节结论
推荐使用let声明变量,使用const声明常量。
尽量避免使用全局变量。
尽量避免使用全局变量。
尽量避免使用全局变量。
条件
if 条件判断
//document.body.scrollTop 为body页面滚动的距离
if(document.body.scrollTop >= 0 ){ //如果页面滚动的距离大于0,
document.body.scrollTop=0; //则让页面还回 0
} //如果没有则没有变化
var price = 1000 , disc= 0.8 ; // 声明产品价格很折扣变量
var huyu = true ; // 声明 huyu 是会员
if (huyu){ //付钱时如果是会员
price *= disc; //则在价格上 打0.8折
}
console.log(`价格是 ${price} 元`) //得出优惠价格
if ...else
如果不满足则运行另一个
//Math.random() 用于生成一个 0 - 1 之间的随机数。
var a=Math.random();
var b=Math.random();
if(a>b) {console.log('随机数 a 大于 b')} //如果a大于b则输出if下面的代码,
else{console.log('随机数 a 小于或等于 b') };//如果不大于则输出else下面的代码
else if 各种可能
var width=window.innerWidth;//获取当前窗口宽度if(width<=320) {
console.log('窗口宽度 <= 320px');
}else if(width<768) {console.log('320px < 窗口宽度 < 768px');
}else if(width<=1024) {console.log('768px <= 窗口宽度 <= 1024px');
}else{console.log('窗口宽度 > 1024px');
}
嵌套 if...else
![](https://img.haomeiwen.com/i6345778/126ce9f13206039b.png)
条件(三元)运算符 ( ?: )
按情况返回以下俩个表达式
slenu ? '在线' : '离线' ; // 如果是true则返回在线, 是false则返回离线
//navigator.onLine 查看网络是否连接
》var slenu = navigator.onLine ? '在线': '离线' ;
> "在线" // 如果是true则返回在线, 是false则返回离线
》var isBirthday = false; // false
》console.log(isBirthday ? '生日快乐':'早啊'); //如果是flase则返回 第二个
> "早啊"
function home(){ console.log('回家'); }
function work(){console.log('上班');}
new Date().getHours() >=18 ? home() : work() ; //new Date().getHours() 当前时间几点
//如果时间是 大于18或者等于18 则返回 home。 如果小于则返回work
switch
case是switch的子属性,用来添加
var province = ' 广东省';
switch(province){
case'江苏省':
case'浙江省':
case'上海市':
console.log('江浙沪包邮!');
break;
case'广东省':
case'福建省':
console.log('邮费:20元');
break;
case'西藏自治区':
case'新疆自治区':
case'内蒙古自治区':
console.log('邮费: 30元');
break;
case'香港特别行政区':
case'澳门特别行政区':
console.log('邮费: 60元');
break;default:
console.log('邮费: 18元')}
..
网友评论