Js1k:用1k的代码做出炫目的效果。代码扩写 犀牛书
微信公众号:前端大全
1. ***变量
2. ***数据类型
一. ***变量:内存中存储*一个*数据的存储空间,再起一个名字
何时使用:程序中反复使用的数据,都要先保存在变量中,再参与运算 如何使用:声明 赋值 取值 1. 声明:在内存中创建一个新变量 如何声明:var 变量名;
仅声明,但暂未赋值,默认值为undefined
变量命名:1. 不能以数字开头,仅能包含字母,数字和下划线 2. 不能用保留字:js中已经预先使用的关键字 比如:name X 3. 见名知意
4. 驼峰命名:第一个单词首字母小写, 之后每个单词首字母大写: 比如:backgroundColor,listStyleType 2. 赋值:将等号*右边*的数据,保存到等号*左边*的变量中 如何赋值:变量名=值;il
*对已经包含值的变量赋新值,新值会替换旧值* 建议:1. 在声明同时,初始化变量的值
如何在声明同时初始化:var 变量名=值;
3. 取值:只要使用变量名,在运行时,会被自动替换为变量中的值
特殊情况:3种:
1. 只声明,但未赋值的变量,可任意使用 比如:var hb; console.log(hb); //undefined 2. 从未声明的变量,不能使用(取值)!
报错:ReferenceError: XXX is not defined
3. 未声明的变量,却可赋值!——其实和var不一样 强烈建议:必须用var声明变量
***声明提前:在程序正式*执行前*,都会将var声明的变量提前到*当前脚本块*的顶部集中声 明。再开始执行程序。***赋值留在原地***
常量:一旦初始化,值不能改变的量
何时使用:程序中,一旦定义不可擅自改变的值,都要用常量保存 如何创建:const 常量名=值;
用作常量的名称,都要大写字母
强行修改常量的值,不会报错,但也无法修改成功!
二. ***数据类型:数据在内存中的存储形式
1.为什么要有不同数据类型:现实中,不同类型的数据,都有专门的用途 2.数据类型:2大类:*原始类型*的值和*引用类型*的对象
原始类型:值直接保存在变量本地的类型(值为一个,而且不能特别复杂) 原始类型5类:Number String Boolean undefined null 引用类型:值没有直接保存在变量本地的类型
变量中只保存指向实际数据所在位置的地址值
1. Number:表示所有数字,即可表示整数,又可表示浮点数(小数) 如何定义:凡是不加引号的数字,都是Number类型数据 何时使用:只要做计算或比较的数字,都不加引号 比如:年龄 价格
所占空间:所有数字都是用64位二进制数(8字节)存储
(个别)整数采用32位二进制(4字节)存储
1byte=8Bit
字节 位
结论:数值大小和所占空间,无关。
十进制转2进制:var i=500; console.log(i.toString(2));
舍入误差:计算机中也有无法精确计算的数字而导致的计算结果进度偏差。—不可避免
解决:按指定小数位数四舍五入
n.toFixed(2)-->将计算结果按2位小数四舍五入
2.String:字符串,表示所有文字信息
如何定义:凡是用作显示的信息都要加引号,单双引号不分 何时使用:凡是用作显示的信息都要加引号 比如:手机号 身份证号 QQ号
js中没有字符类型,所以一个字也要加引号。 所占空间:每个英文字母或数字,1字节 每个汉字,2字节
js的内存中都是用字符的unicode号存储字符
unicode:人为给主要语言中的每个字符编一个号
***字符串内容一旦创建,值不可改变,非要改变,只能用新字符串替换旧字符串。
特殊:+运算中,如果参与运算的都是字符串,则加法变为字符串拼接 var str=\ str=str+\
console.log(str); //过程中共创建了几个字符串//3个
字符串不能修改是。
Day 02
回顾:
1. js数据类型:2大类:
原始类型: 5个Number String Boolean undefined null 引用类型
Boolean类型:只有两个值:true , false
何时使用:主要保存对/错,真/假, 成立/不成立,都用boolean类型 如何定义:不带引号的true和false就是boolean类型
正课:
1. ***数据类型转换 2. ***运算符和表达式
1. ***数据类型转换:
***js是弱类型编程语言:3点:
1. 声明变量时,不用考虑变量中将要存储的数据类型 2. 赋值时,动态判断数据的类型
因为是动态判断同一个变量,先后可保存不同类型的数据。 3. 运算时,js会根据自己的需要,动态转换数据类型
2大类:
1. 隐式转换:无需程序员干预,而自动完成的转换 先讨论算数运算中的隐式转换: 规律:1). 默认一切转数字类型,做算数计算
bool类型:true-->1 false-->0 2). +法中,只要有一个是字符串, 都转为字符串,+变为字符串拼接
其他类型转字符串: 在字面量前后直接加引号
(转字符串:true-->”true”)
表达式:由数据,变量和运算符组成的公式 *默认,从左向右,两两计算 NaN(Not a Number):“不是一个数字”的“数字(类型:指的是数字类型)”
何时遇到:当无法转为数字时,或无法正常计算时,结果都为NaN
特点:和任何数据做计算,结果永远为NaN
加法计算中,碰上字符串,也会转为\ typeof(x): 返回x的数据类型名称: Number String Boolean