为了账号安全,请及时绑定邮箱和手机立即绑定

Web前端之JavaScript小知识点(I)

标签:
JavaScript

1.JavaScript由Netscape公司开发的,是一种基于对象和事件驱动的脚本语言 ,并且可在所有主要的浏览器中运行
JavaScript 被设计用来向 HTML 页面添加交互行为 ,无需编译,可由浏览器直接解释运行
JavaScript 是一种弱类型语言
特点:
交互性(它可以做的就是信息的动态交互)
安全性(不允许直接访问本地硬盘)
跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关)

2.JS是基于对象,Java是面向对象。
JS只需解释就可以执行,Java需要先编译成字节码文件,再执行。
JS是弱类型,Java是强类型。
3.一个完整 JavaScript实现由以下3个部分组成
核心(ECMAScript)
文档对象模型(DOM)
浏览器对象模型(BOM)
4.JavaScript与HTML的结合方法
HTML 的 <script> 标签用于把 JavaScript 插入 HTML 页面当中
<input type="button" value="测试" onclick="test();">
编写JavaScript 两种方式:内部JS和外部JS
内部JS程序,在HTML源码中
<script type="text/javascript">
function test()
{
alert("hello");
}
</script>
language 属性不赞成使用,请使用type属性替代
外部JS程序,在HTML中引入单独的JS程序
<script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="<js地址>/xxx.js" type="text/javascript"></script>
在引用外部JS的script标签间不能编写JavaScript代码

5.在HTML中大小写是不敏感的,但是在JavaScript程序中大小写是敏感的
HTML:大小写不敏感
JavaScript:大小写敏感
CSS:大小写敏感
6.JavaScript中 == 与 === 的区别:
==:会进行类型转换,判断值是否相同,如果两边类型不同,则先转换类型,在比较值是否相等
===:不会进行类型转换,判断值和类型是否都相同,值不同或者类型不同都为false
<script type="text/javascript">
//== 与 === 的区别:
var n1=100;
var n2="100";
alert(n1==n2); //判断值是否相同,如果两边类型不同,则先转换类型,在比较 true
alert(n1===n2)//全相对,判断值和类型是否都相同,值不同或者类型不同都为false
</script>
7.常量:直接在程序中出现的数据值 const 常量名:数据类型=值;
标识符:由不以数字开头的字母、数字、下划线(_)、美元符号($)组成,常用于表示函数、变量等的名称
例如:_abc,$abc,abc,abc123是标识符,而1abc不是
JavaScript语言中代表特定含义的词称为保留字,不允许程序再定义为标识符
JavaScript的关键字:break,case,catch,continue,default,delete,do,else,false,finally,for,function,if,
in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with;
8.定义变量:var 变量名=变量值; JavaScript的变量严格区分大小写
使用var和不使用var的区别:加var一定是局部变量,不加var如果全局变量有,则覆盖,
如果没有则定义为新的全局变量。至于这个新的全局变量能否访问到,取决于该方法是否被执行过。
9.javascript的数据类型:1.基本数据类型:number(数字),string(字符串),boolean(布尔类型)
2.特殊类型:null(空),undefined(未定义)
3.组合类型:array(数组),object(对象)
typeof(变量) 用于获得变量的数据类型
undefined------如果这个值未定义
boolean--------如果这个值是布尔值
string---------如果这个值是字符串 注意与Java的区别
number---------如果这个值是数值
object---------如果这个值是对象或null
function-------如果这个值是函数

<script type="text/javascript">
var n=100;
alert("1.n的类型是"+typeof(n)); //获取变量n的数据类型,是number类型
var s="北方名族大学";
alert("2.s的类型是"+typeof(s)); //获取字符串s的数据类型,是string类型
var flag=true;
alert("3.flag的类型是"+typeof(flag)); //boolean类型
var name;
alert("4.name的类型是"+typeof(name)); //string类型
alert("5.name2的类型是"+typeof(name2)); //name2没有定义,类型为undefined表示是未定义变量
var obj=null; //和Java是一样的
alert("6.obj的类型是"+typeof(obj)); //object类型
var s2=new String("hello word");
alert("7.s2的类型是"+typeof(s2)); //object类型

function fun(){
    alert("Hello World!");
}
alert("8.函数fun方法的类型是"+typeof(fun));

var price=123.3456;  //在JavaScript是number类型,JavaScript不区分整数与小数
alert("9.price的类型是"+typeof(price));  //number类型

var name3=null;
alert("10.name3的类型是"+typeof(name3)); //object
alert("10.name的类型是"+name3);  //null

</script>

JavaScript中 String 与 string 的区别:String是对象类型 string是基本类型
用instanceof来判断
<script type="test/javascript">
var s="100"; //当做string类型看
alert(s instanceof(Object)); //false
</script>

10.javascript注释: 两种类型的注释
单行注释以双斜杠开头(//)
多行注释以单斜杠和星号开头(/),以星号和单斜杠结尾(/)
11.undifined与null的区别:
变量定义了未初始化/ 访问对象不存在属性 --- undefined
访问的对象未开辟内存空间 --- null
Null在程序中代表变量没有值或者不是一个对象
Undefined代表变量的值尚未指定或者对象属性根本不存在
12.JavaScript属于松散类型的程序语言
变量在声明的时候并不需要指定数据类型
变量只有在赋值的时候才会确定数据类型
表达式中包含不同类型数据则在计算过程中会强制进行类别转换

数据类型转换: 1.数字+字符串: 数字转换为字符串
2.数字+布尔值:true 转换为1,false 转换为0
3.字符串+布尔值:布尔值转换为字符串 true 或 false

数据类型的转换规则:
1.其他类型转换为数值型数据
类型 转换后的结果
undefined-----NaN(not a number)
null----------0
逻辑型--------若其值为true,则结果为1;若其值为false,则结果为0
字符串型------若内容为数字,则结果为相应的数字,否则为NaN
其他对象------NaN
2.其他类型转换为逻辑型数据
类型 转换后的结果
undefined-------false
null------------false
数值型----------若其值为0或NaN,则结果为false,否则为true
字符型----------若其长度为0,则结果为false,否则为true
其他对象--------true
3.其他类型转换为字符串型数据
类型 转换后的结果
undefined--------"undefined"
null-------------"NaN"
数值型-----------NaN,0或者与数值相对应的字符串
逻辑型-----------若其值为true,则结果为"true";若其值为false,则结果为"false";
其他类型---------若存在,则其结果为 toString() 方法的值,否则其结果为"undefined"

强制类型转换函数
函数parseInt():强制转换成整数 例如parseInt("6.12")=6
函数parseFloat(): 强制转换成浮点数 例如parseFloat("6.12")=6.12
函数eval():将字符串强制转换为表达式并返回结果 例如eval("1+1")=2,eval("1<2")=true
函数typeof(): 获得变量的数据类型

<script type="text/javascript">
var n=100;
var s="100";
var flag=true;
var price=3.5;
var d=3;
var s2="123.456";
var m=5;
alert(n+s); //会进行类型转换,数字会转换为字符串 100100
//数字+布尔值:true 转换为1,false 转换为0
alert(n+flag); //会进行类型转换,布尔类型会转换为number类型 101
alert(s+flag); //会进行类型转换,布尔类型会转换为字符串类型 100true
alert(n+price); //进行数值加法 103.5
alert(n/price); //生成小数
alert(n/d); //生成小数 33.33333333
alert(parseInt(n/d)); //parseInt() 转换为整数 33
alert(parseFloat(s2)); //parseFloat() 可以接收一个字符串 123.456
alert(parseFloat(n/m)); //parseFloat() 转换为小数 20

alert("2+3");  //将字符串转换为数值运算 5
alert("2<3");  //将字符串转换为布尔  true

</script>

<body>
<h1>非常经典的一道javascript的面试题</h1>
<hr>
<script type="text/javascript">
alert(undefined==null); //true
/*
undefined -->null
null -->null
  */
  alert(false==0); //true
  /*
     false --->0
     0  ---->0
     ==
  */
  alert(0=='0');//true
  /*
     0==0
  */
  alert(undefined===null); //false
  alert(false===0); //false
  alert(0==='0'); //false
  alert(typeof(undefined)); //undefined
  alert(typeof(null)); //object
  alert(typeof(false)); //boolean
  alert(typeof(0)); //number;
  alert(Number(undefined));//NaN  Not a Number
  alert(Number(null));//0
  alert(Number('0'));//0

</script>
</body>

点击查看更多内容
14人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消