Js1
//1.JavaScript是一种轻量级、解释型的Web开发语言。
//轻量级:弱类型语言,比企业级语言简单。无法操作系统文件。
//解释型:无需任何的环境进行编译。只需要浏览器。依赖浏览器解释。
//2.JavaScript核心组成部分(ECMAscript/BOM/DOM)
//ECMAscript:欧洲的计算机协会组织。发布JavaScript基本的语法标准。
//BOM:浏览器对象模型.window:浏览器打开的一个页面。
//DOM:文档对象模型.document:文档文件。
//3.JS和H5的关系
//h5:html5,是超文本标记语言的第五代版本。
//h5:前端开发。
<!--链接式:将js代码放置在单独的js文件中,通过<script>标签引入-->
<script type="text/javascript" src="abc.js"></script>
//1.如何引入js,和引入css一致的。
//内嵌式:将js代码放置到html页面一起。
//document.write('我是内嵌式输出js里面的内容');
//链接式:将js代码放置在单独的js文件中,通过<script>标签引入
//行内式:不推荐使用。
//2.快捷键 ctrl+r预览页面。
//3.注释:优化。
//当行注释://
//多行注释:/* */
//什么是字符串:由引号包起来的字符。
//js里面的分号(可有可无,建议写上,好的编程习惯),代表语句结束了。
//如果一行写多个js语句,分号一定要加上。
//1.如何定义变量。
//var a=5;//定义变量,将变量5存入内存。方便后面进行使用。
//变量的值是可变的。
var a=10;
a=11;
alert(a)
//变量写入内存。后面随意进行使用。
//可以同时定义多个变量,方便后面使用。
//var b=10,c=20,d=30; //一般不推荐
//推荐的写法,可读性提高了。
//var b=10;
//var c=20;
//var d=30;
//变量不能前置访问。
//alert(num);//undefined:未赋值,未初始化。
//var num=100;
//alert(num);//100
//变量是松散类型的,定义变量是无需告之变量的类型。
var num1=234;//数字
var num2='hello';//字符串
var num3=true;//布尔类型。 true真/false假
//2.输出值。
//alert()://括号里面可以放字符串和变量,以一个弹出框的形式输出。
//alert('a');//a 字符串
//alert(a);//5 变量
document包括上面的菜单是window对象;
Window可以省略,document不可以省略;
出错时,点击F12检查,有一个红色的❌,点击,则可以出现错误信息
#box{/*属性*/
width: 200px;
height:200px;
background: red;
}
//类:一类事物。类的下面就是具体的对象。
//对象object:程序的世界里,一切皆对象,对象是具体的。
//对象的核心组成:属性+方法。
//如何访问对象的属性和方法:
//属性的访问: 对象.属性
//方法的访问: 对象.方法()
//例如:张三 对象。
//张三的属性(对象的外观):身高,体重,肤色... 属性一般情况下都是不同的
//张三的方法(对象的功能):吃饭,跑步,开车... 方法是相同的
//一、学习系统默认对象下面的方法。
//1.window:最大的对象,window对象名可以省略。
//window.alert('hello,javascript');//弹出信息框.阻止后面的代码继续执行,括号里面可以放在各种类型的数据和表达式。
//window.prompt('请输入一个数字:');//弹出输入框,括号里面输入框的提示文字。
var name=prompt('请输入一个名字:');
alert(name);
//2.document:第二大的对象,代表文档。
//document.write():将括号里面的内容(标签),输出到浏览器,标签会解析.重新绘制页面。
/*document.write('我是输出到浏览器');
document.write('<br/>');
document.write('<em>我是输出到浏览器</em>');*/
//document.getElementById():通过id选择器获取标签对象,括号里面放当前标签的id名称。
//Element:标签,元素。
//document.getElementById('box'):获取了div
//alert(document.getElementById('box'));//[object HTMLDivElement]
//alert(document.getElementById('strong1'));//[object HTMLElement]
//alert(document.getElementById('p1'));//[object HTMLParagraphElement]
//alert(document.getElementById('p1').id);//p1
//获取a元素,根据a元素找到对应的属性的值。
/*alert(document.getElementById('link123').title);
alert(document.getElementById('link123').href);
alert(document.getElementById('link123').target);*/
var a1=document.getElementById('link123');//将对象存入内存。
//调用对象,添加属性。
alert(a1);//http://www.taobao.com/,特殊的。不会输出元素对象,输出链接的地址。
alert(a1.title);//链接的解释
alert(a1.href);//http://www.taobao.com/
alert(a1.target);//_blank
//变量的特性:值是变化的/定义多个/写入内存/松散类型/不可前置访问。
//变量的命名:
//标识符:自定义的名称符号,见名知意。(不能取关键字和保留字)
//关键字:在js里面具有特殊的用途,被使用了。
//保留字:为了程序的发展,将一些单词预留下来,以备后用。
//1.变量的数据类型
//两大类:
//基本类型:数字number/字符string/布尔boolean/未定义undefined/空对象null
//基本类型里面又有两个特殊类型:未定义undefined/空对象null
var num=10;
var str='hello';
var bool=true;
var a=undefined;
var b=null;
//复合类型(复杂,引用):对象类型object
//alert(typeof null);//object
//alert(typeof b);//object
//2.如何检测数据类型--typeof() 括号可以省略
//alert(typeof num);//number
//alert(typeof bool);//boolean
//alert(typeof str);//string
//alert(typeof a);//undefined
//3.获取元素对象
//alert(document.getElementById('box'));//[object HTMLDivElement]
alert(document.getElementById('box123'));//null,此对象不存在。
//1.数学运算符 + - * / %
/*alert(3+2);//5
alert(3-2);//1
alert(3*2);//6
alert(3/2);//1.5
alert(3%2);//1*/
//%:求余,求模
//alert(9%2);//1
//alert(2%9);//2,前面的数小于后面的数,求余的结果是前面的数。
//不管num是哪个数字,结果都是下面的值,num>=0
//alert(num%5); //0 1 2 3 4
//判断奇偶数 num%2==0
//判断是否能够整除。 num%6==0
//+:加法运算,字符串的拼接符号。只要+号两边出现字符串,不是加法运算,而是拼接。
//alert(2+10);//12
//alert(2+'10');//210
//alert('a'+'b');//ab
//alert(3+'abc');//3abc
//alert(5/0);//数学规定,除数不能为0. infinity:无穷大。
//alert(3*'abc');//NaN (not a number:不是一个数字)
//alert(0.1+0.2);//0.30000000000000004
//alert(0.2+0.4);//0.6000000000000001
//alert((0.1*10+0.2*10)/10);//0.3
//alert(0.2+0.6);//0.8
//alert(0.1+0.3);//0.4
//数学运算符具有隐式(自动完成,看不到过程)转换功能
//var str='10';
//alert(typeof str);//string
//alert(typeof +str);//number
//alert(3+'6');//'36'
//alert(3*'6');//18数学运算符具有隐式
//alert(3-'2');//1
//总结:+ - / * % 具有隐式转换,+号比较特殊,直接添加在数字的前面。
alert(3+'6');//'36'
alert(3+ +'6');//9
//javascript使用“ = ”运算符来给变量或者属性赋值(最低优先级)num=num+15;/有两个符号,但+最后执行
//复合赋值操作 +=、-=、*=、/=、%= 带操作的复合赋值运算。(更快捷,更优)。
//赋值运算符 = 将等式右边的结果赋值给左边。
//var num=10;//将10赋值给num;
//num=num+15;//将num+15赋值给num; num+=15
//alert(num);//25
//var a=1;
//a=a+1;//a+=1 复合赋值操作
//alert(a)//2
/*var str='hello';
str+='world';//str=str+'world';
alert(str);*/
//关系运算符(结果为布尔值) <、>、<=、>=、==、===、!=(不相等) !==(不全等)
//alert(5>4);//true 真
//alert(2>3);//false 假
//==:值相等,具有隐式转换。
//var num='3';
//alert(num=3);//赋值 3
//alert(num==3);//比较值是否相等 true ,隐式转换, 比较的核心是数字。
//alert(num===3);//恒等,值和数据类型都要相等。 false 类型不相等。
//alert(0.1+0.2==0.3);//false
//alert(0.2+0.5==0.7);//true
//alert(3>=2);//true
//alert(3<=2);//false
//1.理解==、===运算符之间的区别。
//alert(undefined==null);//true js约定。
//alert(undefined==undefined);//true
//alert(null==null);//true
//alert(null==3);//false,和其他的任何值比较都是false
//alert(undefined=='abc');//false
//同时js还约定,undefined和null,除了和自己比较之位,和其他的任何值比较都是false
//alert(undefined===null);//false
//2.理解相等和恒等运算符
//==相等:值相等,具有隐式转换
//===恒等:比较值和类型,不具有隐式转换。
//3.不等
//!=:不相等
//!==:不恒等
alert(0.1+0.2!=0.3);//true
<!--链接式:将js代码放置在单独的js文件中,通过<script>标签引入-->
<script type="text/javascript" src="abc.js"></script>
//var num1=prompt('请输入一个数字:');
//var num2=prompt('请再输入一个数字:');
//alert(typeof num1); //string
//alert(typeof num2); //string
//alert(+num1 + +num2); //300
/*var num='100';//字符串
var str1='hello,javascript';//字符串
var str2="hello,javascript";//字符串
var str3="hello'abc'world";//引号嵌套使用,单引号里面存放双引号,反之一样。
alert(str3);*/
//var str='3*2';
//alert(str);//3*2
//alert(typeof str);//'string'
//alert(typeof str === 'string');//true
//alert(typeof typeof str);//string
//&&(and) 与、||(or) 或、!(not) 非
//1.&&(and)
//逻辑与:只有在第一个操作数和第二个操作数都为真的情况下,结果为真。当两边为具体数字时,则会出现具体值
//如果第一个操作数为真,结果无论第二个操作数是真假,结果都是第二个操作数。
//如果第一个操作数为假,程序不会执行第二个操作数,直接输出第一个操作数。
//数字非零即真,字符串非空即真 undefined null都是false
//alert(3>2 && 4>3); //==>alert(true && true) ==>true
//alert(3&&2);//2
//alert(3&&0);//0
//alert(0&&4);//0
//alert(''&&123);//''
//alert(null&&fakdsljflkdasjfkldsajf);//null
//2.逻辑或:只有在两个操作数都为假的情况下,结果为假。也就是说如果第一个操作数的求值结果为真,就不会对第二个操作数求值了。
//如果第一个操作数为真,程序不会执行第二个操作数,结果是第一个操作数的值。
//如果第一个操作数为假,结果无论第二个操作数是真假,结果都是第二个操作数。
//alert('abc'||dfjkadsfjdasl);//abc
//alert(''||1);//1
//alert(''||0);//0
//3.逻辑非:逻辑非操作符首先会将它的操作数转换为一个布尔值,然后再对其求反。
//alert(!5);//false
//alert(!!!3);//false
//逻辑非的结果一定是布尔值。
//alert(5);//5
//alert(!!5);//true
//只能操作一个值的操作符
//++ 加1 --减1
//核心:符号在前面和后面区别
/*var num=10;
num++;
num++
alert(num);//12*/
/*var num=10;
++num;
++num;
alert(num);//12*/
//对于当前的操作数,不管++在前还是后,都会+1。
//如果++在操作数前面,先进行+1,后参与运算(赋值操作等)。
//如果++在操作数后面,先参与运算(赋值操作等),后进行+1。
/*var a=5;
var b=++a;//a先加1,在赋值给b
var c=a++;//a先赋值给c,a再加1.
alert(a);//7
alert(b);//6
alert(c);//6*/
/*var num=10;
alert(num++);//10
alert(num);//11*/
/*var num=10;
alert(++num);//11
alert(num);//11*/
/*var k=0;
//0 + 2 + 2 + 2
alert(k++ + ++k + k + k++);//6
alert(k);//3*/
/*var a=10;
var b=++a + a++;
alert(b);//22
alert(a);//12*/
var a=10;
a=++a + a++;
alert(a);//22
//var num='10';
//alert(typeof +num);//number
//alert(typeof ++num);//number
//var num='abc';
//alert(typeof num);//string
//alert(typeof +num);//number
//alert(typeof ++num);//number,类型是数字,但值不一定是
//alert(+num);//NaN
//alert(typeof NaN);//number,你把他当成数字去考虑才知道他是不是数字
/*alert(null==null);//true
alert(undefined==undefined);//true 你不是人==你不是人
alert(undefined==null);//true js约定
alert(NaN==NaN);//false*/
//alert(''==' ');//false
//alert(''==0);//true
//显示转换:系统强制转换或者手动转换
//Number():强制转换成数字
//String():强制转换成字符串
//Boolean():强制转换成布尔值
//==比较两个值,最终的核心都是要转换成数字,除了undefined和null.
/*alert(Number(undefined));//NaN
alert(Number(null));//0*/
//alert(''==0);//true
//alert(Number(''));//0
//alert(Number(true));//1
//alert(Number(false));//0
/*alert(true==1);//true
alert(true==2);//false
alert(false==0);//true
alert(false=='');//true*/
//alert(Number('abc'));//NaN
//alert(String(true));//'true'
//alert(String(3));//'3'
//alert(Boolean('abc'));//true
//alert(Boolean(123));//true
//1.parseInt( ):将括号里面的值(字符串)转换成对应的整数。从第一个数字字符开始转换,一直到非数字字符截止。
//alert(parseInt('100px'));//100
//alert(parseInt('abc100'));//NaN
//alert(parseInt('3.96abc'));//3
//2.parseFloat( ):将括号里面的值转换成对应的小数。
//alert(parseFloat('100px'));//100
//alert(parseFloat('abc100'));//NaN
//alert(parseFloat('3.96abc'));//3.96
//二进制:0-1
//八进制:0-7
//十进制:0-9 生活中的数字
//十六进制:0-9 a-f
//十六进制:0-9 a-f
//rgb=red红 green绿 blue蓝
//336699 33--r 66--g 99--b
//000000 黑色
//ffffff 白色
//数字越大,颜色越浅
<!--<input type="text" id="count" value="12345" />-->
<script type="text/javascript">
//alert('a'*3);//NaN
//当数学计算无法得到数字结果,该变量的值为NaN
//isNaN():该方法判断值不是一个数字.
/*var str='abc';
alert(isNaN(str));//true
var num=10;
alert(isNaN(num));//false*/
//4.输入一个五位数,分别输出个十百千万位;
/*var count=document.getElementById('count');
alert(count.value);*/
var num=prompt('请输入一个五位数:');//12345
var gw=num%10;
var sw=parseInt(num%100/10);
var bw=parseInt(num%1000/100);
var qw=parseInt(num%10000/1000);
var ww=parseInt(num/10000);
document.write('我输入的数字是:'+num+'<br/>');
document.write('个位:'+gw+'<br/>');
document.write('十位:'+sw+'<br/>');
document.write('百位:'+bw+'<br/>');
document.write('千位:'+qw+'<br/>');
document.write('万位:'+ww);
//alert(a);//a is not defined
//console:浏览器控制台console对象。报错信息显示在这里。
//console.log():将括号里面的值输出到控制台
//console.log('abc');//*****
//alert();//****
//document.write();
- javascript基本介绍及发展趋势
- JavaScript是一种轻量级、解释型的Web开发语言。
- JavaScript核心组成部分(ECMAscript/BOM/DOM)
- JavaScript的用途
通过js的学习,掌握后面的框架,库,组件,插件的原理和应用。
前端的核心
渲染/用户体验/性能优化
- JS和H5的关系
- JS是网页脚本语言,代表控制网页的行为。
- H5是目前最流行的HTML开发语言, 配合CSS层叠样式表,专门用于布局。
- 编写Js及如何运行Js
- Html文件内部编写JavaScript代码
<script type="text/javascript">
</script>
-
- 引入外部的 . js文件
<script type="text/javascript" src="*** . js"></script>
- 变量的概念及数据类型
- 概念:所谓变量,就是特定时间用于保存特定值的一个名字而已,并且初始化后可以再次改变的量。ECMAScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。
- 声明定义:使用 var 操作符(var是关键字),后面跟一个变量名(变量名是标识符)声明多个变量的时候,可以在一行或者多行操作,只要把每个变量用逗号分隔开即可,但最好分行写,可读性佳。
- 命名规则: 数字、字母、下划线、$符号组成,其中数字不能做开头。并且变量名应做到见名知意,常用的方式有驼峰命名法,匈牙利命名法。同时变量名不能是保留字或者关键字
- 变量的数据类型
ECMAScript 中有 5 种简单数据类型:Undefined、Null、Boolean、Number 和 String。
还有一种复杂数据类型(引用类型)——Object。
检测变量类型的方法:typeof( 变量名 ) 或者 typeof 变量名
- JavaScript运算符
- 赋值运算符 = 将等式右边的结果赋值给左边。
javascript使用“ = ”运算符来给变量或者属性赋值(最低优先级)
复合赋值操作 +=、-=、*=、/=、%= 带操作的复合赋值运算。(更快捷,更优)。
- 数学运算符 + - * / %
+:求和,连接字符作用
%:求余数(求模)
- 关系运算符(结果为布尔值) <、>、<=、>=、==、===、!=(不相等) !==(不全等)
- 理解==、===运算符之间的区别。
- 理解相等和恒等运算符
- 逻辑运算符
- && 与、|| 或、! 非
- 逻辑与:只有在第一个操作数和第二个操作数都为真的情况下,结果为真。
- 逻辑或:只有在两个操作数都为假的情况下,结果为假。也就是说如果第一个操作数的求值结果为真,就不会对第二个操作数求值了。
- 逻辑非:逻辑非操作符首先会将它的操作数转换为一个布尔值,然后再对其求反。
- 一元运算符:只能操作一个值的操作符++ --
自增、自减 : 自身的值上面+1 -1;
- 变量不同类型之间的自动、手动转换。
- 显示转换:系统强制转换或者手动转换
Number( ) /String( )/Boolean( )/parseInt( )/parseFloat( )
-
- 隐式转换:系统自动根据当前的符号进行转换。
+ - * / % ++ -- ! ......
- 进制的简单介绍
当一个数字以0开头时,就表示这是一个八进制数,以0x前缀来表示一个十六进制值。
- NaN的概念及应用
- 当数学计算无法得到数字结果,该变量的值为NaN
- 注意:因为NaN代表非数字,它不等于任何值,也不能做运算,
即使alert(NaN == NaN); 结果也是false
- isNaN(num)方法,该方法判断num变量的值是否是NaN(不是一个数字)
- 强化练习
- 为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
- 小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。它需要一个程序将华氏温度 (80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32)保留3位小数 - var k=0; console.log(k++ + ++k +k +k++);
- 输入一个五位数,分别输出个十百千万位;
- 扩展练习:计算两个文本框的和。