js基础

查看js语法错误:
1.火狐 firebug
2. 谷歌 chome控制台

script标签

  1. type = 'text/javascript’说明当前script标签中文本的类型
  2. 所有的js代码都必须卸载scri标签里
  3. 为了语法规范,script标签写在head标签中
  4. 可以引入多个script标签,多个script标签之间,顺序执行
  5. js代码可以外部引入 src引入外部文件
  6. 如果当前的script标签作用引入外部文件,则该标签内就不能再写代码了
  7. //单行注释 快捷键 ctrl+/
  8. /**/多行注释 快捷键 ctrl+shift+/
alert("hello world");//在页面上弹出警告框
//注:每一条js语句后面都必须加分号,语法规范
document.write("hello world");//在当前文本上输入内容
document.write("&lt/script&gt");//输出</script>

变量详解

  1. 常量/字面量 确定的值
  2. js数据类型分为两大类:
    基本数据类型:
    数字 number 100
    字符串 string 所有带双引号/单引号(两者表达含义相等)
    布尔值 boolean true false
    特殊数据类型 null(空) undefined(未声明)
    复合数据类型:
  3. 变量,值可以改变
    声明变量——通过关键字(系统定义的有特殊功能的单词)var
  4. 标识符:用户自定义的所有名字叫做标识符。变量名
    规律:
    标识符必须由数字、字母、下划线和美元符号$组成
    不能以数字开头
    区分大小写,age和Age是两个变量
    标识符必须见名思意
    js是弱语言,变量被赋值成什么类型就是什么类型,不要再后续的代码里改变该变量的数据类型,否则很容易引起代码歧义
var age = 18;//声明变量的同时给变量赋值叫初始化
age = 20;//变量赋值
var name="baby",age="18",sex="female";//可以同时声明多个变量,变量之间要使用逗号隔开
alert(typeof name);//当前变量/常量的数据类型

自动数据类型转换

算数运算符、关系运算符、逻辑运算符、赋值运算符、自增运算符、自减运算符
·任何类型的数据和字符串类型数据做相加操作的时候,其他数据类型会自动转换成为字符串类型。进行字符串拼接
如果其中一个操作数是字符串的时候,+号叫做字符串拼接符
·任何数据除了和字符串做相加运算外,先将字符串转为数字,再与NaN做算数运算的结果始终都是NaN,包括NaN自身和NaN做运算的结果也是NaN。
字符串如果是纯数字字符串转成数字,否则转换成NaN

	var a = "nin"+"hao";//ninhao
	var b = "1"+1;//11
	var c = "h"+true;//htrue
	var temp = 1-"2";//-1 字符串“2”转成了数字
	var tmp = 1-"2a";//NaN——not a number

表达式和赋值运算符

代码规范:

  1. 注意层级缩进,tab=四个空格
  2. ;,后面都跟一个空格 运算符+= 前后都应该空空格
  3. 每一条语句后面都必须添加;分号
    **表达式:**运算符和操作数组成的式子
    赋值运算符:将等号右面的值赋值给等号左边的变量
    复合赋值运算符:+= *= /= -=
var temp = 2+3//temp的值为5
temp += 10;//temp的值为15

强制数据类型转换

任何其他数据类型除了和字符串做相加操作外,与数字类型做算数运算的时候,其他数据类型都会自动的转换成数字再进行运算
布尔值:true=1 false=0
特殊数据类型中:null=0 undefined=NaN

var temp = 1*"1";
alert(temp);//1_number
var tmp = 1+true;//2
var tp = 1+null;//1
var t = 1+undefined;//NaN

通过方法boolean()进行强制数据类型转换
将别的类型强制转为布尔值
数字0转成布尔值为false,所有非0的数字转成布尔值都为true
空字符串转成布尔值为false,所有非空字符串转成布尔值为true
null,undefined转成布尔值都是false

var temp = Boolean(1);//true
var tmp = Boolean(0);//false
var tp = Boolean(-1);//true
var t = Boolean("");//false
var m = Boolean("hello");//true
var p = Boolean(null);//false
var e = Boolean(undefined);//false

Number() 将别的数据类型转成数字

  1. 布尔值:true=1 false=0
  2. 字符串:纯数字的字符串 = 对应的数字、非纯数字的字符串 = NaN
  3. 特殊数据类型:null=0 undefined=NaN
    parseInt() 取整(兼容Number的功能)
    parseFloat()取浮点数 带小数的数字
var t = Number(true);//1
var e = Number(false);//0
var m = Number("20");//20
var p = Number("20a");//NaN
var te = parseInt("20a");//20
var tem = parseInt(3.14);//3
var temp = parseFloat("3.14");//3.14
var em = 1/0;//Infinity(无穷大)

一元运算符

只能操作一个值的运算符,叫做一元运算符。
a++;表达式值:++后置,先取a的值,然后进行+1操作
++a;表达式值:++前置,先进行+1操作,再取a值
上述两个表达式都是进行+1操作
a–; --a;

var a=5;
alert(a++);//5
alert(a);//6
var b=5;
alert(++b);//6
alert(b);//6
var c=5;
alert(c--);//5
alert(c);//4
var d=5;
alert(--d);//4
alert(d);//4

关系运算符

关系运算符
关系运算符中操作数为非数字的时候要遵从一下规律

//如果两个操作数都是数值,则数值比较
alert(5>3);//true
//如果两个操作数都是字符串,则比较两个字符串对应的字符编码值
//字符存储在计算机上,以二进制方式去进行存储
//ASCII码表,二进制码和字符对应密码表
alert("a" > "b");//false
//逐位进行比较,直到比较出大小,终止比较
alert("abc" > "abdf");//false
alert("abcf" > "abd");//false
//两个操作数有一个是数值,则将另一个转换成数值,再进行数值比较
alert(2 > true)//true==1 true

关系运算符比较
在等于和不等的比较上,如果操作数为非数值,则遵从以下规律:

//一个操作数为布尔值,则比较之前将其转换成数值,false转换成0,true转换成1
alert(1==true);//true
alert(1==false);//true
//一个操作数为字符串,则比较之前将其转成数值再进行比较
alert(20=="20");//true
//一个操作数为NaN,则==返回false,!=返回true
alert(1==NaN);//false
alert(a!=NaN);//true
alert(NaN == NaN);//false
alert(NaN != NaN);//true
//在全等和全不等,如果值和类型都相等,才返回true,否则返回false === !==
alert(20 === "20");//false
alert(20 === Number("20"));//true

逻辑运算符

逻辑运算符

表达式1 && 表达式2
只有当两个表达式的结果都为真的时候,与运算的结果才为真
【短路操作】当第一个表达式1为false的时候,第二个表达式2就不去执行,直接判断整个运算为false


表达式1 || 表达式2
只有当两个表达式的结果都为假的时候,或运算才为假
【短路操作】当第一个表达式为true的时候,表达式2就不去执行,判断整个表达式为true


!表达式
逻辑非运算遵从下述规律

//如果操作数是一个空字符串,返回true
alert(!"");//true
//如果操作数是一个非空字符串,返回false
alert(!"aa");//false
//操作数是0,返回true
alert(!0);//true
//操作数是任意非0的数值(包括infinity),返回false
alert(!Infinity);//false
//操作数是NaN,返回true
alert(!NaN);//true
//操作数是undefined,返回true
alert(!undefined);//true

先后级

进制转换

十进制转二进制:除二取余,倒序排列
二进制转十进制:110100=>12的平方+12的四次方+1*2的五次方
十进制转八进制/十六进制:先将十进制转为二进制,再将二进制转为八进制或者十六进制
二进制转八进制:从右向左,每三位一组,不足三位的使用0补齐,将每一组数转成十进制。
二进制转十六进制:从右向左,每四位一组,不足四位的使用0补齐,将每一组数转成十进制。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值