js引入方式
1.直接引入
<script><script/>
<script type="text/javascript"><script/>
<script language="javascript"><script/>
2.间接引入
<script src=""></script>
间接引入框架最好用cdn加载在别人的服务器
注意最好放在body 的最后
注释方式
- 单行注释 ctrl+/
- 多行注释 ctrl+shift+/
输出方式
-
弹框输出 alert(); -
文档流输出 document.write(); -
控制台输出 console.log();
文档流输出
显示在页面上
控制台输出
建议用这个调试 ,百度或者途牛官网你去控制台可以看见招聘的东西
记住这个报错
console.log(age)
输出:age is not defined,因为age没有定义
如果是
var a;
console.log(a)
输出:undefinde
因为没有赋值
特殊的变量名: name 系统默认定义的name的值为控的字符串
弹框输出
不建议用,会中断 代码执行,有他,其他的代码都不执行(可以用来确定删除)
js变量
js中采用var 声明变量
语法
var 变量名; 生明
var 变量名=值; 声明并赋值
同时声明多个变量
var a,b,c;
a=10;
b=20;
c=30;
console.log(a,b,c)
变量命名规范
- 变量名有数字、字母、下划线、$组成,
不 能以数字开头
var 1a;
控制台报 Invalid or unexpected token(无效的定义)
-
严格区分大小写 -
可以使用中文(不建议) var 激动="好激动"
-
不能使用系统关键字(重点) 比如 var default if else break、continueif else var continue break let const等
如果不晓得的话直接var一下,
Unexpected token 'break'(意外标记,即使用了关键字)
-
采用小驼峰命名法: firstFriend
helloWorld
name
注意 var声明的变量存在变量提升(要知道)
注意 意思是声明提前,赋值并未提前
比如:console.log(g)
var g=1
控制台输出:undefinded
而不是not definded
js常见的数据类型(笔试题或面试题)
? 值类型:string number boolean null undefinded(值和变量放一起)
? 引用类型:object (值和变量不放在一起)
-
方式三(别人问的):六种 注意 null的检测结果为object
typeof检测结果:
string 字符串 string
number 数值类型 number
boolean布尔类型 boolean
null空类型 object
undefinded未定义类型 undefinded
object对象类型 包括数组,function object/function
检测数据类型typeof
方式一:typeof(被检测的变量)
方式二:typeof 被检测的变量
undefined类型
1、变量声明后未赋值,值为undefined
2、直接将变量的值赋值为undefined
3、函数的参数未传入实际的值,该参数未undefined
4、函数运行后,未给出返回值(return),则未undefined
5、对象的属性未进行定义,值也是undefined
JavaScript简称js,也称为ECMAJavaScript
defer延迟加载(基本用不上)
null类型
var nu=null;
console.log(typeof nu)
输出:object
两种等号
- ==(恒等):判断值是否相等,返回boolean类型
console.log(null==undefined)//true,因为都是空的
- ===(全等):判断值和类型是否相等,返回boolean类型
console.log(null===undefined)//false
1、类型不同
Null为空对象指针,为object类型,undefined的类型为Undefined
2、undefined未定义类型,以后可以装任意的数据类型;而null为空对象指针,但以后接收对象类型
js不区分单双引号,两者均不解析变量
var name='旭哥'
console.log('name有没有通宵')//name有没有通宵
-
变量的拼接 + var newStr=name+‘有没有通宵’ console.log(newStr) 输出:旭哥有没有通宵 拼接,先正常写需要的,然后在变量左右写’'然后再在它左右写+ ? var name=“旭哥” ? var age=20 ? var newStr2=’’+name+‘说:"我今年’+age+‘岁"’ ? console.log(newStr2) 旭哥说:“我今年20岁”
转义字符 \
var a="<p style=\"color:red\"></p>"
输出:"
"
单双引号嵌套
注意 建议使用单引号,和标签的双引号区分
var a='<p style="color:red\"></p>
输出:"
"
boolean类型
- 常用于判断
- 在计算时会自动将true为1,false为0
数值类型number
进制的转换(麻烦)
注意 字母不区分大小写
var num=023;//19 0开头默认优先考虑8进制
var num1=029;//十进制
console.log(num1)//29
var num2=0xa;//0x代表十六进制
var num3=0xA;
console.log(num2)//11
console.log(num3)//11
console.log(num)//19
console.log(typeof num)//number
科学计数法
e代表10的多少次方
注意 e也为数值类型
var num=3.14e2;//3.14x10x10
consolo.log(typeof num)//number
var num=3.14e-2;//0.0314
无穷 Infinity
除数不能为0
var num=0/10;//0 number
var num=10/0;Infinity number
console.log(num)//Infinity
console.log(typeof num)//number
小数的计算
注意 永远不相信js中的小数的计算,更不能将其结果进行判断,因为不准
单精度和双精度的影响
? 遇到小数乘以倍数变为整数判断
console.log(0.1+0.2)//部位0.3
console.log(0.2+0.1 == 0.3)//false
console.log(0.2+0.3 == 0.5)//true
console.log(1+2 == 3)//true
NaN
-
not a number 不是一个数 的数值类型 -
NaN自己都不认识自己 console.log(NaN==NaN)//false
console.log(NaN===NaN)//false
-
注意 纯数字的字符串在运算时直接转换为数值 var num=2*'200'
console.log(num)//400
注意 当加号两边为数值,则进行加法运算,当两边有字符串,则为拼接号 var num=10+'10';
console.log(num)//1010
-
只要有NaN的计算,其结果都为NaN console.log(NaN == NaN)//false
console.log(NaN === NaN)//false
var num = NaN + 3;//NaN
var num = NaN - 3;//NaN
var num = NaN * 3;//NaN
var num = NaN / '3';//NaN
console.log(num)
-
如何产生的? 希望运算的到一个数值类型,但没有得到
var num=2*'傻逼';//NaN
var num=2*'300px';
console.log(num)//NaN
console.log(typeof num)
对象类型
对象 object
1.通过实例化生成对象
new Object() 生成的对象叫做实例化对象
var obj=new Object();
console.log(obj)//{}
console.log(typeof obj)//object
2.使用字面量的方式定义
var obj={};
console.log(obj)//{}
console.log(typeof obj)//object
关键 js中最大的对象为window
对象的属性---------理解为变量
对象的方法----------理解为函数
var name='张三'
console.log(window.name)//张三
var dog=new Object();
dog.name='后裔';
dog.sex='男';
console.log(dog.name)//大黄
类型的转换
-
隐式转换(了解)(自动转换) 1、纯数字的字符串在运算时,会自动转换为数值进行计算(除了+,’+'作为连接符使用) 2、布尔类型的值在运算时,true相当于1,false相当于0 3、只有空字符串(’’)会转换为false,只要有内容,则会转为true 4、数值类型除了0以外其余都转换为true(除了NaN),0将转换为false tofixed(n)设置固定的小数位数 console.log(5*'5')//25 number
console.log(5*'5a',typeof)//NaN number
console.log(5+'5')//55 string +两侧为字符串则拼接
console.log(2+true)//3 number
//只有空字符串('')会转换为false,只要有内容,则会转为true
var flag='';
if(flag){
console.log('true')
}else{
console.log('false')
}
结果:false
-
强制转换为boolean类型 注意 boolean常用于判断 字符串里面有值,转换为Boolean,为true 字符串里面为空,转换为Boolean,为false var str=5;
var res=Boolean(str)
console.log(res)//true
var a='abc'//true
var b=' '//true
var c=''//false
-
强制转换为字符串类型 String() toString() 建议使用 var num=10;
//var res=String(num);
var res=num.toString();
console.log(num)
console.log(typeof res)//string
-
强制转为数值类型 强制转为整形parseInt() (重点) 注意 1.小数转整形的时候,直接将小数点后去掉,不存在四舍五入 ? 2.可以识别16进制和10进制不识别八进制 ? 3.识别字符串,结果为第一个字母之前的值,若第一个字母之前没有值,则为NaN var num=9.1;//9
var num=9.9;//9
var num='0xa';//10 可以识别16进制
var num='023'//23 不识别8进制,默认为十进制
var num='123abc'//123 解析字符串 结果为第一个字母之前的值
var num='1a2b3c';//1
var num='abc123';//NaN
var res=parseInt(num)
console.log(res)//9
parseInt(String,radix) (了解) var str='023';
var res=parseInt(str)//23 十进制,不写基数,默认十进制
var res=parseInt(str,0)//23 十进制
var res=parseInt(str,8)//19 8进制
var res=parseInt(str,16)//35 16进制
强制转为浮点型parseFloat() 1.解析字符串,保留小数 2.不解析进制 3.识别小数,但只识别第一个小数点 var str='0xa';//0 不解析进制
var str='123abc'; //123 解析字符串,保留第一个字母之前的,可以取像素
var str='3.14a';//3.14
var str='3.140080.1221';//3.14008 只识别第一个小数点
var res=parseFloat(str)
强制转换为数值类型Number() 1.解析进制 2.只解析纯数字 var str='0xa';//10
var str='123abc';//NaN
var str='123';//123
var res=Number(str)
console.log(res)
补充toFixed() 保留指定的小数位数,能四舍五入,变为string类型 var num=36.00;
console.log(num)//36
var num=25;
var num=3.1415;//3.14
var num=9.9999;//10.00
var res=num.toFixed(2);
console.log(num)//25.00 string
-
总结转换的表格
| parseInt() | parseFloat() | Number() | toFixed() |
---|
解析字符串 | 是,保留第一个字母之前的值 | 是,保留小数 | 否 | 否 | 解析进制 | 是,只解析16进制 | 否 | 是 | 否 | 解析数 | 是,去掉小数部分,不四舍五入 | 是,只识别第一个小数点之前 | 是,只解析纯数字 | 是 |
|