标签script

我们知道,html要使用js就要使用<script>标签。 
两种方式: 
一是直接在<script>这里</script>写入代码。 
二是在别的文件写好js代码,然后script标签的src属性引入进来。

 

script其实有6个属性(全都是可选):

  1. src:包含要执行代码的外部文件;
  2. language:现在已废弃;
  3. type:表示编写代码使用的脚本语言的内容类型;
  4. charset:指定src引入代码的字符集;
  5. async:表示应该立即下载脚本;
  6. defer:表示脚本可以延迟到文档完全被解析和显示后再执行。

    type的解释也说明了一个问题,<script></script>中间的代码不必需是js代码。如果不声明,则默认为text/javascript,此时代码按照js的规则解析。如果声明了其他的不可识别的类型,则它和其中的内容会被忽略掉。 
    例如: 
    <script type='text/html' id="tpl"></script> 
    <script type='text/foo-template' id="foo-tpl"></script> 
    有些模板引擎就利用了它来实现DOM节点的模板填充。

注意:<script><script> 中间不要在任何地方出现'</script>'字符串

 

关键字,保留字

以前只记住了几个关键字,现在还注意到了保留字,保留字就是在js当中其实没啥用的但是就是不给用来当做命名的单词,多为Java语言的关键字。

 

数据类型

typeof操作符,可以判断某值的数据类型。我们都知道,一共六种。 
1、undefined 
2、boolean 
3、string 
4、number 
5、function 
6、object

 

undefined与null

undefined 指变量尚未初始化 
null 指变量值为一个空对象指针 
其实它们的意思和用法基本都是一致的,在js里,我们完全可以只用undefined而不去使用null,这样混不混淆都无所谓了。 
唯一的区别: 
console.log(typeof undefined)--undefined 
console.log(typeof null)--object

阮一锋的解释: 
null表示"没有对象",即该处不应该有值。典型用法是:

(1) 作为函数的参数,表示该函数的参数不是对象。 
(2) 作为对象原型链的终点。

Object.getPrototypeOf(Object.prototype)
// null

undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是: 
(1)变量被声明了,但没有赋值时,就等于undefined。 
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。 
(3)对象没有赋值的属性,该属性的值为undefined。 
(4)函数没有返回值时,默认返回undefined。

var i;
i // undefined function f(x){console.log(x)}
f() // undefined var o = new Object();
o.p // undefined var x = f();
x // undefined
 

number

转换数值的三个方法:

Number(),parseInt(),pasreFloat()

Number()功能比较强大,规则如下: 
true:1 
false:0 
null:0 
undefined:NaN 
"":0 
"011":11(忽略前面的0) 
"011.1":11.1(忽略前面的0) 
"0x11":17(0x开头十六进制) 
"别的格式的字符":NaN

parseInt()规则如下: 
仅转换字符串,其他非数字类型统一返回NaN 
"":NaN 
"011":11(忽略前面的0) 
"011.1":11(忽略前面的0) 
"0x11":17 
"123abc":123 
"abc123":NaN

parseFloat()规则如下: 
仅转换字符串,其他非数字类型统一返回NaN 
"":NaN 
"011":11(忽略前面的0) 
"011.1":11(忽略前面的0) 
"0x11":0(忽略前面的0) 
"123abc":123 
"abc123":NaN

整数还可以通过二进制,八进制,十六进制来表示。 
其中,八进制字面值的第一位必须是0 
十六进制字面值的前两位必须是0x

我们从字符串转过来的时候如果有要求则要再传一位进制数: 
parseInt("011",2):3 
parseInt("011",8):9 
parseInt("011",16):17 
parseInt("0xaa",16):170 
parseInt("aa",16):170

注意:程序在计算的时候0开头的数字会被解析为八进制,0x开头的数字会被解析为十六进制。最终结果为十进制。因此,我们做计算的时候最好不要用带0开头的数字进行计算,避免让别人看迷糊

 

等号

 

一个等号:赋值 
两个等号:判断相等 
三个等号:判断全等

 

一、赋值问题 
在echarts.js源码中看到了一句:

var ecModel = this._model = new GlobalModel(null, null, theme$$1, optionManager);

其中连续赋值了两次,后来查阅资料,发现执行过程是这样的:

1、var ecModel =new GlobalModel(null, null, theme$$1, optionManager);
2、this._model = new GlobalModel(null, null, theme$$1, optionManager);

连续多个赋值操作,可从左到右拆分成每个变量直接等于最后的值,而不会执行像var ecModel = this._model这样的语句。

其实不推荐这样写,这种写法能避开就避开呗。

二、关于 ==

== 和 != 会先转换再比较

比较规则: 
1、一个布尔值,一个数字 true:1,false:0 
2、一个字符串,一个数字 先转成数字 
3、一个对象,一个数字 先调用对象的valueOf()再按前面的规则 
4、两个对象 比较是否同一个对象 
例: var a={},b={}; console.log(a==b);//false 
5、null==undefined true 
6、NaN==NaN false

 

label 语句

label语句可以在代码中添加标签,以便将来使用。一般与循环语句的break和continue配合使用。
举个例子:
我有一个嵌套循环,当满足条件的时候执行语句并跳出外层循环。
var num=0;
firstfor:
for(var i=0;i<10;i++){
secondfor:
for(var j=0;j<10;j++){
if(i==5 && j==5){
break firstfor;//跳出第一个for循环
}
num++;
}
}
alert(num); //num=55
 

重载

 

js没有重载!

重载只在java里只说过,js没听说过。

然而百度到的全都是js实现重载的方法。

我的疑问(等待回答):

既然js都不支持重载了,为什么还要特意去模仿实现重载呢?

JavaScript学习(一)——基础知识查漏补缺的更多相关文章

  1. Go语言知识查漏补缺|基本数据类型

    前言 学习Go半年之后,我决定重新开始阅读<The Go Programing Language>,对书中涉及重点进行全面讲解,这是Go语言知识查漏补缺系列的文章第二篇,前一篇文章则对应书 ...

  2. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  3. Java基础知识查漏 一

    Java基础知识查漏 一 Jdk和jre Jdk是java程序设计师的开发工具,只要包含编译程序,jvm和java函数库 Jre中只有jvm和java函数库,没有编译程序的相关工具,适合只运行不撰写j ...

  4. java基础知识查漏 二

    一.java基本数据类型所占的内存大小 在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符 单元的字符类型和1种用于表示真值的boolean类型.( ...

  5. java基础知识查漏 四

    1.JAVA多线程实现方式 (1)继承Thread类,并重写run()方法 (2)实现Runnable接口,,实现run()方法 (3)使用ExecutorService.Callable.Futur ...

  6. java基础知识查漏 三

    一.Servlet 和Jsp的生命周期 1.Servlet生命周期       Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发 ...

  7. java知识查漏补缺

    一.重写(override)和重载(overload)的区别 二者除了名字相似,其实没什么联系 范围不同:重载发生在同一个类的不同方法之间.重写发生在父类和子类自荐. 前提: 重载要求:方法名相同,参 ...

  8. Flutter查漏补缺1

    Flutter 基础知识查漏补缺 Hot reload原理 热重载分为这几个步骤 扫描项目改动:检查是否有新增,删除或者改动,直到找到上次编译后发生改变的dart代码 增量编译:找到改变的dart代码 ...

  9. js基础查漏补缺(更新)

    js基础查漏补缺: 1. NaN != NaN: 复制数组可以用slice: 数组的sort.reverse等方法都会改变自身: Map是一组键值对的结构,Set是key的集合: Array.Map. ...

随机推荐

  1. 认识与设计Serverless(一)

    一.什么是Serverless 定义:Serverless是一种无服务器的架构,区别于传统的Baas,SAAS,作为FAAS(函数即服务)而存在,函数由事件驱动触发并按需调用. 按需调用:区别于传统的 ...

  2. Python---1. 基础数据类型

    转载:  Py西游攻关之基础数据类型

  3. 站点默认访问https

    需求简介 现在网站都是https访问了,再用http会显得很low,所以我要把网站设置为默认的https访问. 1nginx的rewrite方法 这应该是大家最容易想到的方法,将所有的http请求通过 ...

  4. cocos代码研究(16)Widget子类RadioButton学习笔记

    理论基础 RadioButton是一种特定类型的两状态按钮,它与复选框相似.它可以 和RadioButtonGroup一起使用,形成一个"组".继承自AbstractCheckBu ...

  5. Java与Flex学习笔记(20)---将flex页面嵌入到jsp页面中

    如果我们只需要用到Flex的一部分功能,例如播放器功能,我们可以单独把Flex页面嵌入到Jsp页面中.要想实现此功能,需要下载一个工程,将其覆盖在服务器根目录下即可.你可以在次下载:FlexModul ...

  6. 上传jar包至nexus

    上传命令: mvn deploy:deploy-file -DgroupId=com.xxx -DartifactId=xxx-pdf -Dversion=16.10.0 -Dpackaging=ja ...

  7. supervisor初试

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

  8. ifconfig源码分析之与内核交互数据

    <ifconfig源码分析之与内核交互数据>本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝.转载,转载时请保持文档的完整性.参考资料:<Linux设备驱动 ...

  9. TimerPickerDialog 中 onTimeSet 执行两次的问题

    开发android小闹钟的程序时,在添加闹钟时闹钟列表中总是出现两个相同的闹钟. btnAddAlarm.setOnClickListener(new View.OnClickListener() { ...

  10. (CLR via C#学习笔记)异步操作 - 线程池

    一 线程池基础 1.线程池维护了一个操作请求队列,将请求的操作追加到线程池队列中,线程池的代码从队列中提取操作项,派发给线程池中的线程; 2.CLR初始化时,线程池中是没有线程的,当有操作派发给线程池 ...