1.js的基础语法
2.js调试
1.F12调出控制台,查看提示错误及其位置。
2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行。
3.语法规范
1.js语句:可执行的最小单元
必须以 ; 结束
严格区分大小写
ex:console.log(); //正确
Console.log(); //错误
所有符号必须是英文标点符号
2.js注释
// :单行注释
/**/ :多行注释
4.变量和常量
1.变量
1.声明变量
var 变量名;
ex:
var uname;
2.为变量赋值
变量名=值;
3.声明变量时直接赋值
var 变量名=值;
注意:
1.允许在一条语句中声明多个变量,用逗号隔开即可。
ex:
var user_name="Hanmm",user_age=18;
2.如果声明变量,但未赋值,则值默认是undefined。
3.声明变量时可以省略var,但不推荐。
2.变量名的命名规范
1.不允许使用关键字和保留关键词
var const if else for while int string...
2.允许包含字母,数字,下划线,$
3.不能以数字开头
4.最好见名知意
ex:
var a;
var uname;
5.尽量使用"小驼峰命名法"
var uname;
var userName;//小驼峰

var UserName;//大驼峰
var user_name;//下划线

3.变量的使用
1.声明变量 未赋值 值默认是undefined
2.使用未声明的变量,则 报错。
3.取值操作-get
变量只要没出现在=的左边,一律是取值操作。
4.赋值操作-set
变量名出现在=的左边,一律赋值操作。
练习:
用三个变量来保存笔记本信息:
笔记本名称
笔记本价格
笔记本库存
并将笔记本信息打印在控制台:输出格式如下:
ex:
笔记本名称:ThinkPad E460
4.常用的使用
1.什么是常量?
在程序中,一经声明就不允许被修改的数据就是常量。
2.语法
const 常量名=值;
常量名在程序中,通常采用大写形式。
ex:
const PI=3.14;
练习:
1.创建一个常量PI,赋值3.14,并打印在控制台,
再将声明好的常量PI的值更改为31.4,尝试打印输出,观察结果。
5.数据类型
1.数据类型的作用
规定了数据在内存中所占的空间。
40:占4个字节 也就是32位
40.1
bit:位
8bit=1byte 字节
1024byte=1KB
1024kb=1MB
1024MB=1G
1024G=1T
2.数据类型详解
1.数据类型分类
1.原始类型(基本类型)
1.Number类型
数字类型
作用:可以用来表示32位的整数,也可以是64位的浮点数(小数)。
整数:
1.十进制
由0-9的数字组成,缝十进一
var age=25;
2.八进制
由0-7的数字组成,缝八进一
八进制中以0开头
3.十六进制
由0-9和A-F组成,缝十六进一
A:10
B:11
C:12
D:13
E:14
F:15
十六进制中以ox开头
浮点数(小数):
小数点计数法:12.34
指数计数法:3.4e3(3.4乘以10的3次方)
2.String类型
字符串类型
作用:表示一系列的文本字符数据,如:姓名,性别,地址等。
每个字符在计算机中都有一个唯一的编码来表示该字符,该码称为Unicode码。
查找一个字符的unicode码:
"一".charCodeAt();//默认十进制
"一".charCodeAt().toString(16);//十六进制

674e-->unicode转换成汉字?
转义字符:\u
其它转义字符:
\n:换行
\t:制表符(缩进)
\":"
\':'
\\:\
字符串在使用过程中,需要使用''或""括起来。
3.Boolean类型
作用:在程序表示真或假的结果
取值:true或false
ex:
var isBig=true;
在参与到数字运算时,true可以当做1运算,false可以当做0运算。
ex:
var result=25+true;//结果:26

4.Undefined类型
作用:表示使用的数据不存在
undefined类型只有一个值,即undefined,当声明的变量未赋值时,该变量的默认值是undefined。
ex:
var num;
console.log(num);//结果undefined

5.Null类型
null用于表示尚不存在的对象。
null类型只有一个值即null,如果函数或方法返回的是对象,找不到该对象时,返回的通常是null。
ex:
document.getElementById("uname");

2.引用类型
2.数据类型转换
1.隐式(自动)转换
不同类型的数据在计算过程中自动进行转换。
1.数字+字符串:将数字转换为字符串
var num=15;
var str="Hello";
var result=num+str;//15Hello
2.数字+布尔:将布尔转换为数字
var num=15;
var isSun=true;
var result=num+isSun;//结果16
3.字符串+布尔:将布尔类型转换为字符串
var str="Hello";
var isBig=true;--》"true"
var result=str+isBig;//结果Hellotrue
4.布尔+布尔:将布尔类型转换数字
var isBig=true;
var isSun=false;
var result=isBig+isSun;//结果1
问题:
var num1=15;
var num2=17;
var str1="Hello";
1.str1+num1+num2
结果:Hello1517
2.num1+num2+str1
结果:32Hello
允许使用typeof()的函数检查变量的数据类型。
2.强制转换-转换函数
1.toString()
将任意类型数据转换为字符串
语法:var result=变量.toString();
ex:
var num=15;
var result=num.toString();
console.log(typeof(result));//string
2.parseInt()
将任意类型的数据转换为整数
如果转换不成功,结果为NaN(Not a Number)
语法:var result=parseInt(数据);
ex:
var num="123abc"; //结果123
var num1="abc123";//结果NaN
3.parseFloat()
将任意类型的数据转换为小数
如果转换不成功,结果为NaN。
语法:var result=parseFloat(数据);
4.Number()
将任意类型的数据转换为number
注意:如果包含非法字符,则返回NaN
语法:var result=Number(数据);
练习:
1.弹出一个输入提示框,输入金额,并保存在变量money中
ex:
var money=prompt("请输入金额:");
2.将money+10,再打印输出加10后的结果
3.注释掉第2步,使用typeof()检查money的类型。
4.将money转换为数字,再+10打印输出。
6.运算符和表达式
1.表达式:由运算符和操作数组成的式子就是表达式
任何一个表达式一定会有结果。
ex:
15+17
var x=y=10;
17<15
2.运算符
1.算术运算符
+,-,*,/,%,++,--

5%2=1 5模2 余数是1
++:自增,只做+1操作
++在前,先自增,再运算
++在后,先运算,再自增
--:自减,只做-1操作
--在前,先自减,再运算
--在后,先运算,再自减
ex:
var num=5;
console.log(num++);//5
console.log(++num);//7
练习:
var num=5;
5 (6)6 6(7)
var result=num + ++num + num++ + ++num + num++ +num; 结果:42
(8)8 8(9) 9
2.关系运算符(比较运算符)
>,<,>=,<=,==,!=,===,!==
运算结果为:boolean类型(true,false)
问题:
1.5>"10" 结果:false
关系运算符两端,只要有一个是number的话,另外一个会隐式转换为number,再进行比较。
2."5">"10" 结果:true
关系运算符两端,如果string的话,则比较每位字符的unicode码,以unicode码不相等的两个字符比较结果作为整体结果。
"张三丰">"张无忌" 结果:false
"三".charCodeAt();
"无".charCodeAt();
3."3a">10 结果:false
Number("3a")--->NaN
NaN
注意:
NaN与任何一个数据做比较运算时,结果都是false。

NaN与任何数据做!=,结果永远都是true。

NaN与任何数据做==,结果永远都是false.
isNaN()函数:
作用:判断指定数据是否为非数字,如果不是数字,返回值为true,是数字的话返回值为false。

3.逻辑运算符
逻辑运算符:&&,||,!
!:取反
&&:并且,关联的两个条件都为true时,整个表达式的结果为true。
||:或者,关联的两个条件,只要有一个为true,整个表达式的结果为true。

短路逻辑与:&& 做条件判断
当第一个条件为false时,整体表达式的结果就是false,不再判断或执行第二个条件。
当第一个条件为true时,会继续判断或执行第二个条件。
短路逻辑或:||
当第一个条件true时,就不再执行后续表达式,整体结果为true。
当第一个条件false时,继续执行第二个条件或操作。
4.位运算符
<<,>>,&,|,^
右移是把数字变小,左移是把数字变大
按位与:& 判断奇偶性
任意数字与1做按位与 ,结果为1,则为奇数,结果为0,则为偶数。
var num=323;
var result=num & 1;
console.log(result);
按位或:| 对小数取整
将任意小数与0做按位或,结果则取整数部分。
var num=123.45;
var result=num | 0;
console.log(result);
按位异或:^ 用于交换两个数字
var a=3;
var b=5;
a=a^b;
b=b^a;
a=a^b;
console.log(a);
console.log(b);
二进制位数,逐位比较,不同则为1,相同则为0。

练习:
声明两个变量,分别保存两个整数。
用异或实现数字的换位。
输出方式如下:
console.log("换位前a:"+a);

console.log("换位后a:"+a);

JS基础-数据类型-运算符和表达式-变量和常量的更多相关文章

  1. C语言基础知识-运算符与表达式

    C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...

  2. js 基础数据类型和引用类型 ,深浅拷贝问题,以及内存分配问题

    js 深浅拷贝问题 浅拷贝一般指的是基本类型的复制 深拷贝一般指引用类型的拷贝,把引用类型的值也拷贝出来 举例 h5的sessionStorage只能存放字符串,所以要存储json时就要把json使用 ...

  3. js基础关系运算符

    js基础关系运算符 == 是否相等(只检查值) x=5,y='-5';x==y true === 是否全等(检查值和数据类型) x=5,y='-5';x===y false != 是否不等于 5!=8 ...

  4. java===java基础学习(1)---数据类型,运算,变量,常量

    今天起开始了java的学习之路,主要学习了数据类型和运算,变量,常量.基本和python有很多相通的地方,所以看起来很容易上手.下面是学习笔记! package testbotoo; public c ...

  5. C#基础(数据类型运算符)

    ---恢复内容开始--- 1.类 修饰符 class 类名 基类或接口 { } 2.命名规范 成员变量前加_ 首字符小写,后面单词首字母大写(Camel规则) 接口首字母为I 方法的命名使用动词 所有 ...

  6. js基础梳理-究竟什么是变量对象,什么是活动对象?

    首先,回顾下上篇博文中js基础梳理-究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?的执行上下文的生命周期: 3.执行上下文的生命周期 3.1 创建阶段 生成变量对象(Variable o ...

  7. java基础(4)--运算符及表达式

    运算符及表达式 算数运算 加(+) 减(-) 乘(*)  除(/) 取余(%) 自增(++) 自减(- -) 注意点 1. 同种类型参与运算(可能需要自动类型转换),返回同种类型 2. 整数的除法是整 ...

  8. JS基础_运算符的优先级

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. Js基础知识(一) - 变量

    js基础 - 变量 *大家对js一定不会陌生,入门很简单(普通入门),很多人通过网络资源.书籍.课堂等很多途径学习js,但是有些js基础的只是往往被大家遗漏,本章就从js变量类型来说一说js 变量类型 ...

随机推荐

  1. 江西财经大学第一届程序设计竞赛 H题 求大数的阶乘

    链接:https://www.nowcoder.com/acm/contest/115/H 来源:牛客网 晚上,小P喜欢在寝室里一个个静静的学习或者思考,享受自由自在的单身生活. 他总是能从所学的知识 ...

  2. Selenium 定位元素原理,基本API,显示等待,隐式等待,重试机制等等

    Selenium  如何定位动态元素: 测试的时候会遇到元素每次变动的情况,例如: <div id="btn-attention_2030295">...</di ...

  3. 连接SQL常见问题

    HTTP Status 500 – Internal Server Error Type Exception Report Message Request processing failed; nes ...

  4. django的优缺点(非原创)

    Django 大包大揽,用它来快速开发一些 Web 应用是不错的.如果你顺着 Django 的设计哲学来,你会觉得 Django 很好用,越用越顺手:相反,你如果不能融入或接受 Django 的设计哲 ...

  5. word 2016 加载 mathtype

    1.加载wold: 首先打开word,选择选项-------加载项------管理(A),选择word加载项,点击转到 这儿显示的是我已经添加过的所以显示的有. 2.点击添加,找到你的mathtype ...

  6. sqlserver2017 +SSMS+ VS2017+SSDT 安装要点及相关组件下载地址

    1.sqlserver2017安装PolyBase需要安装jdk7 ,注意必须是7  jdk10是不行的. 下载地址:http://dl-t1.wmzhe.com/30/30117/jdk_7u_1. ...

  7. Python中list,tuple,dict,set的区别和用法(转)

    原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...

  8. CSS 图片居中

    } .left-logo a { height: 100px; width: 55px; display: block; } .left-logo a img{ height: ; width: 55 ...

  9. 为什么说windows会死机,Linux不会死机

    通常所说的死机是指操作没有响应了,但是操作系统的核心仍然在工作.在windows中,由于只有一个界面,没有响应就是死机了:而在Linux中可有tty1-tty7,死了一个开另外一个把死了的那个杀掉就可 ...

  10. istio 服务地图

    1.安装 kubectl apply -f install/kubernetes/addons/servicegraph.yam 2.查看安装是否成功kubectl -n istio-system g ...